双向字典?
我有两组对象,在某些情况下,第一组将用作另一组的键,而在其他情况下,第二组将用作第一组的键。 此外,两个列表中都不得有重复项。
什么是一个好的数据结构用于此? 我应该使用两个字典还是有更聪明的方法?
对数据结构有更好了解的人可能会给出更好的建议,但就个人而言,我会使用2个词典来方便使用。 您可以使用1个字典执行相同操作,但访问时间会增加。
编辑 :废话,我只是在编写一些代码的过程中我将如何做到这一点我看到Falaina发布了这个与我做得更好的相同的想法: 获得通用字典的价值关键?
这通常称为双向映射。 如果您不喜欢PowerCollections,那么这里有一个自定义实现: C#中的双向1到1字典
那里有一些多钥匙系列。 尝试:
http://powercollections.codeplex.com/
要么
http://www.codeproject.com/KB/recipes/multikey-dictionary.aspx
Wintellect的电源系列可能是一个很好的起点。 他们有一个经过测试的MultiDictionary作为其包的一部分。