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?

Was it helpful?

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
scroll top