2008-10-03 40 views
19

我有一個對象列表,每個對象都包含一個Id,Code和Description。如何將列表<object>轉換爲C#中的Hashtable?

我需要這個名單轉換成一個Hashtable,使用說明爲重點和標識作爲值。

這樣就可以將Hashtable序列化爲JSON。

有沒有辦法將List <Object>轉換爲Hashtable,而無需編寫循環來遍歷列表中的每個項目?

回答

32

我們假設你的List包含Foo類型的對象(帶有一個int ID和一個字符串描述)。

您可以使用LINQ把這一列表變成字典這樣的:

var dict = myList.Cast<Foo>().ToDictionary(o => o.Description, o => o.Id); 
+1

這個例子是現貨。 Linq一直在解決左側,右側和中間的問題。 – 2008-10-03 10:23:56

+0

好東西!這與我剛剛使用Frank鏈接中的示例所寫的內容幾乎相同。非常感謝你的幫助:) – 2008-10-03 10:26:42

5

如果您有權訪問Linq,則可以使用ToDictionary函數。

+0

太棒了!這正是我所期待的。謝謝:) – 2008-10-03 10:17:54

1

theList.ForEach(委託(theObject OBJ){dic.Add(obj.Id, obj.Description );});

0

另請參見System.Collections.ObjectModel.KeyedCollection < TKey,TItem>。這似乎是你想要做的更好的搭配。

相關問題