I have used the ‘select’ keyword and extension method to return an IEnumerable<T> with LINQ, but I have a need to return a generic Dictionary<T1, T2> and can’t figure it out. The example I learned this from used something in a form similar to the following:
IEnumerable<T> coll = from x in y select new SomeClass{ prop1 = value1, prop2 = value2 };
I’ve also done the same thing with extension methods. I assumed that since the items in a Dictionary<T1, T2> can be iterated as KeyValuePair<T1, T2> that I could just replace ‘SomeClass’ in the above example with ‘new KeyValuePair<T1, T2> { ...‘, but that didn’t work (Key and Value were marked as readonly, so I could not compile this code).
Is this possible, or do I need to do this in multiple steps?
Thanks.
The extensions methods also provide a ToDictionary extension. It is fairly simple to use, the general usage is passing a lambda selector for the key and getting the object as the value, but you can pass a lambda selector for both key and value.
Then
objectDictionary[1]Would contain the value "Hello"