2010-12-15 76 views
1

是否有一個開箱即用的.Net集合類型,它結合了Set和Dictionary語義,使得我只存儲項目,但也可以快速查找,通過從每個項目中派生出來的某個密鑰來啓動?事情是這樣的:.Net數據結構,結合了集合和字典語義

var foos = new KeyedSet<string, Foo>(foo => foo.ID); 

foos.Add(new Foo { ID = "X234", Descr = "One foo" }); 
foos.Add(new Foo { ID = "Q909", Descr = "Another foo" }); 

Console.WriteLine("Foo Q909 is {0}", foos["Q909"].Descr); 
+0

這是如何從正在使用字典有什麼不同? – Joe 2010-12-15 02:48:27

+1

@Joe:一個字典需要'foos.Add(「X234」,新Foo {ID =「X234」,Descr =「One foo」});',這是多餘的,單調乏味且容易出錯的。我可以寫一個輔助方法,但是我必須記得始終使用它。 – 2010-12-15 03:02:01

+0

可能的重複[有沒有像集合的字典可以使用它的值的屬性作爲關鍵?](http://stackoverflow.com/questions/1773950/is-there-a-dictionary-like-collection-that -can-use-a-property-of-value-as-th) – nawfal 2013-11-05 05:31:19

回答