Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python-like dictionary declaration for C#?

In Python one can do:

d = {1 : 'Hello', 2 : 'World'}

In C# it's more verbose:

Dictionary<int, string> d = new Dictionary<int, string>();
d.Add(1, 'Hello');
d.Add(2, 'World');

How can I make this less verbose?

like image 694
Aillyn Avatar asked Sep 08 '11 14:09

Aillyn


1 Answers

You can use the collection initializer syntax (and implicit typing with var):

var myDict = new Dictionary<int, string> { {1, "Hello"}, {2, "World"} };

This code will actually be compiled down to the code you have above. Note that you (unfortunately) can't elide the constructor or the generic type arguments.

Not quite Pythonic, but getting there!

like image 167
dlev Avatar answered Sep 17 '22 14:09

dlev