好像我忘记了一个类型名……我脑子里的东西一直告诉我,我偶然发现了一个字典,它基本上使用用户定义的比较器进行查找。但不知何故,我再也无法在 .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

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

最佳答案

我认为您正在寻找 KeyedCollection<TKey, TItem> 。创建一个继承自此类的类并覆盖 GetKeyForItem() 方法。

关于c# - "Dictionary"将键作为存储元素的一部分?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3728487/

10-13 09:46