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

Bre*_*ias 4 .net c# dictionary

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

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

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

Nat*_*nSr 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;
    }
}
Run Code Online (Sandbox Code Playgroud)

实际上,我发现LINQ ToDictionary()更有用.

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