字典键入存储数据的属性

时间:2014-02-18 16:31:08

标签: c# .net dictionary

创建将键入数据对象属性的字典的最简单方法是什么?例如。想象我有:

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,只要它具有所需的索引器)。

1 个答案:

答案 0 :(得分:5)

您可以使用KeyedCollection

public class MyCollection : KeyedCollection<string, A>
{
    protected override GetKeyForItem(A a)
    {
        return a.Key;
    }
}