创建将键入数据对象属性的字典的最简单方法是什么?例如。想象我有:
interface A
{
string Key{get;}
//other stuff
}
到目前为止,我有:
IDictionary<string, A> dict = new Dictionary<string, A>();
void Add(A a)
{
dict[a.Key] = a; //I would prefer that the collection class managed this relationship
}
A Get(string key)
{
return dict[key];
}
有没有更好的方法来实现相同的目标? (该集合不需要实现IDictionary,只要它具有所需的索引器)。
答案 0 :(得分:5)
您可以使用KeyedCollection
:
public class MyCollection : KeyedCollection<string, A>
{
protected override GetKeyForItem(A a)
{
return a.Key;
}
}