使用值属性作为关键字的字典

时间:2014-03-22 01:15:38

标签: c# .net dictionary

回到2008年左右,我使用了一个BCL字典,该字典根据它存储的obect-value的属性建立了密钥。现在我找不到那本字典了。有人能提醒我吗?以下是我记得的内容:

  • 它需要用作< value>的类。实现一个接口,该接口具有一个方法或属性,用于标识哪个字段/成员被视为密钥。
  • 这是在其中一个ServiceModel名称空间中使用或定义的字典。

我尝试使用反射器工具查找整个BCL中的所有字典类,但我没有发现它。也许这个词"字典"不是我曾经使用的这个神奇课程的名字。

1 个答案:

答案 0 :(得分:5)

也许你还记得KeyedCollection<,>抽象类?它根据您想要的任何物品建立了一个密钥。

public class MyObject
{
    public string Key
    {
        get;
        set;
    }

    public int Foo
    {
        get;
        set;
    }
}

public class MyObjectCollection : KeyedCollection<string, MyObject>
{
    protected override string GetKeyForItem(MyObject item)
    {
        return item.Key;
    }
}

在实践中,我发现LINQ的ToDictionary()更有用。

http://msdn.microsoft.com/en-us/library/ms132438(v=vs.110).aspx