【发布时间】:2011-05-25 16:18:08
【问题描述】:
.Net 是否有一个开箱即用的通用集合类型,它结合了 Set 和 Dictionary 语义,这样我只存储项目,但也可以通过从每个项目派生的某个键进行快速查找?像这样的:
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);
【问题讨论】:
-
这与使用
的字典有何不同? -
@Joe:字典需要
foos.Add("X234", new Foo { ID = "X234", Descr = "One foo" });,这是多余的、乏味的并且容易出错。我可以编写一个辅助方法,但我必须记住一直使用它。
标签: .net collections dictionary set