如何在C#中将List 转换为Hashtable?

我有一个对象列表,每个对象包含Id,代码和描述。

我需要将此列表转换为Hashtable,使用Description作为键, Id作为值。

这样就可以将Hashtable序列化为JSON。

有没有办法从List 转换为Hashtable而不编写循环来遍历列表中的每个项目?

假设您的List包含Foo类型的对象(带有int Id和字符串Description)。

您可以使用Linq将该列表转换为如下所示的字典:

var dict = myList.Cast().ToDictionary(o => o.Description, o => o.Id); 

如果您可以访问Linq,则可以使用ToDictionary函数。

theList.ForEach(delegate(theObject obj){dic.Add(obj.Id,obj.Description);});

另请参阅System.Collections.ObjectModel.KeyedCollection 。 这似乎是你想要做的更好的匹配。