How can I convert List<object> to Hashtable in C#?
Question
I have a list of objects, each containing an Id, Code and Description.
I need to convert this list into a Hashtable, using Description as the key and Id as the value.
This is so the Hashtable can then be serialised to JSON.
Is there a way to convert from List<Object> to Hashtable without writing a loop to go through each item in the list?
Solution
Let's assume that your List contains objects of type Foo (with an int Id and a string Description).
You can use Linq to turn that list into a Dictionary like this:
var dict = myList.Cast<Foo>().ToDictionary(o => o.Description, o => o.Id);
OTHER TIPS
If you have access to Linq, you can use the ToDictionary function.
theList.ForEach(delegate(theObject obj) { dic.Add(obj.Id, obj.Description); });
Also look at the System.Collections.ObjectModel.KeyedCollection<TKey, TItem>
. It seems like a better match for what you want to do.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow