如何在C#中将List转换为Hashtable?
时间:2020-03-06 15:04:01 来源:igfitidea点击:
我有一个对象列表,每个对象包含一个ID,代码和描述。
我需要将此列表转换为Hashtable,使用Description作为键,并将Id作为值。
这样就可以将Hashtable序列化为JSON。
有没有一种方法可以将List <Object>转换为Hashtable,而无需编写循环遍历列表中的每个项目的方法?
解决方案
如果可以访问Linq,则可以使用ToDictionary函数。
假设列表包含类型为Foo的对象(带有int Id和字符串Description)。
我们可以使用Linq将该列表转换为Dictionary,如下所示:
var dict = myList.Cast<Foo>().ToDictionary(o => o.Description, o => o.Id);
theList.ForEach(delegate(theObject obj) { dic.Add(obj.Id, obj.Description); });
还要查看System.Collections.ObjectModel.KeyedCollection <TKey,TItem>。似乎是我们想要做的更好的选择。