I am starting to do a little development in C#, and I am stuck with a problem here. Usually I develop in Python where stuff like this is being implemented easily (at least for me), but I have no idea how to do that in C#:
I want to create a dictionary containing a list of dictionaries like the following using Generic Collections:
{ "alfred", [ {"age", 20.0}, {"height_cm", 180.1} ],
"barbara", [ {"age", 18.5}, {"height_cm", 167.3} ],
"chris", [ {"age", 39.0}, {"height_cm", 179.0} ]
}
I started with the following:
using System.Collections.Generic;
Dictionary<String, Dictionary<String, double>[]> persons;
But then I’d like to insert the three records from above at once into persons. I am stuck with syntax errors all the way.
Anyone have a solution for me?
Edit:
Thank you all – I didn’t expect to receive so many well thought answers in such a short time! You are great!
You could use dictionary initializes. Not as elegant as Python, but could live with:
And then:
Also notice that you need
Dictionary<string, Dictionary<string, double>>for this structure and notDictionary<string, Dictionary<string, double>[]>.Also working with such structure could be a little PITA and harm readability and compile-time type safety of the code.
In .NET it is preferred to work with strongly typed objects, like this:
and then:
and then you could use LINQ to fetch whatever information you need:
To be noted of course that using collections would not be as fast as a hashtable lookup but depending on your needs in terms of performance you could also live with that.