"词典"与键作为存储元素的一部分?

Mar*_*mer 4 c# dictionary

好像我忘记了一个类型名...我头脑中的东西一直告诉我,我偶然发现了一个基本上使用用户定义的Comparer进行查找的字典.但我在某种程度上找不到.Net的深度了.

由于我不知道如何在不描述可能的实现的情况下描述我正在寻找的内容,我还将举例说明我不想做的事情.

我基本上正在寻找一种方法来实现以下(伪代码):

class CustomId
{
   // [...]
}
class Element
{
   CustomId id;
}
Container<CustomId, Element> myContainer = new Container(myCustomComparer)
myContainer.Add(new Element()) // No key specified
myElement = myContainer[new CustomId(...)]; // Retrieval with custom id
Run Code Online (Sandbox Code Playgroud)

也许这在技术上不是一本字典,但我希望这个想法很清楚.基本上,键是存储元素的一部分.

Bry*_*yan 12

我想你在找KeyedCollection<TKey, TItem>.创建一个继承自此类的类并重写该GetKeyForItem()方法.