Explanation of Dictionary Initialisation Syntax (C#)
<p>I found an example showing that a dictionary can be initialised as follows:</p>

<pre><code>Dictionary&lt;string, int&gt; d = new Dictionary&lt;string, int&gt;()
{
    {"cat", 2},
    {"dog", 1},
    {"llama", 0},
    {"iguana", -1}
};
</code></pre>

<p>I don't understand how the syntax <code>{"cat", 2}</code> is valid for creating a Key-Value Pair. Collection initialisation syntax seems to be of the form <code>new MyObjType(){}</code>, while anonymous objects are of the form <code>{a="a", b="b"}</code>. What is actually happening here?</p>
