使用Value属性作为键的字典

本文关键字:字典 Value 属性 使用 | 更新日期: 2023-09-27 17:52:16

早在2008年左右,我正在使用一个BCL字典,它根据它所存储的对象值的属性建立键。现在我找不到那本字典了。有人能提醒我一下吗?以下是我对它的记忆:

  • 它需要被用作实现一个接口,该接口具有确定哪个字段/成员将被视为键的方法或属性。
  • 是在ServiceModel命名空间中使用或定义的字典。

我尝试使用反射器工具查找整个BCL中的所有字典类,但我没有发现它。也许"字典"这个词并不在我曾经使用过的这门魔法课的名称中。

使用Value属性作为键的字典

也许您还记得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