结合集合和字典语义的.Net数据结构

结合集合和字典语义的.Net数据结构,.net,collections,dictionary,set,.net,Collections,Dictionary,Set,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" }); Con

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);
var foos=newkeyedset(foo=>foo.ID);
添加(新的Foo{ID=“X234”,Descr=“一个Foo”});
添加(新的Foo{ID=“Q909”,Descr=“另一个Foo”});
WriteLine(“Foo Q909是{0}”,foos[“Q909”].Descr);

这与与与一起使用的词典有何不同?@Joe:词典需要
foos.Add(“X234”,new Foo{ID=“X234”,Descr=“One Foo”}),这是冗余的、乏味的和容易出错的。我可以写一个helper方法,但是我必须记住一直使用它。可能是完美的复制品!我没有听说过
System.Collections.ObjectModel
名称空间。非常感谢你。