C#中的多键词典(另一种)?

Mat*_*ley 9 c# data-structures

基于这个问题,是否有一个简单的解决方案,可以使用多键字典,其中任何一个键都可以用来识别值?

即.

MultikeyDictionary<TKey1, TKey2, TValue> foo;
foo.Add(key1, key2, value);
myValue = foo[key1];
// value == myValue
foo.Remove(key2);
myValue = foo[key1]; // invalid, Exception or null returned
Run Code Online (Sandbox Code Playgroud)

Nol*_*rin 10

这篇博文似乎详细介绍了一个相当不错的实现.

C#的多键通用字典类

MultiKeyDictionary是一个C#类,它包装和扩展了Microsoft在.NET 2.0及更高版本中提供的Generic Dictionary对象.这允许开发人员创建值的通用字典,并通过两个键引用值列表,而不仅仅是通用字典<...>的Microsoft实现提供的键.你可以在CodeProject(这里)看到我的文章,但是这段代码更新,没有bug.

  • @JeffBridgman:试试这个链接(原文的缓存):http://web.archive.org/web/20111209074636/http://www.aronweiler.com/2009/02/multi-key-generic-dictionary-类for.html (2认同)