双向字典?

我有两组对象,在某些情况下,第一组将用作另一组的键,而在其他情况下,第二组将用作第一组的键。 此外,两个列表中都不得有重复项。

什么是一个好的数据结构用于此? 我应该使用两个字典还是有更聪明的方法?

对数据结构有更好了解的人可能会给出更好的建议,但就个人而言,我会使用2个词典来方便使用。 您可以使用1个字典执行相同操作,但访问时间会增加。

编辑 :废话,我只是在编写一些代码的过程中我将如何做到这一点我看到Falaina发布了这个与我做得更好的相同的想法: 获得通用字典的价值关键?

这通常称为双向映射。 如果您不喜欢PowerCollections,那么这里有一个自定义实现: C#中的双向1到1字典

那里有一些多钥匙系列。 尝试:

http://powercollections.codeplex.com/

要么

http://www.codeproject.com/KB/recipes/multikey-dictionary.aspx

Wintellect的电源系列可能是一个很好的起点。 他们有一个经过测试的MultiDictionary作为其包的一部分。