双向字典?

时间:2009-08-04 13:56:20

标签: c# data-structures

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

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

3 个答案:

答案 0 :(得分:8)

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

编辑:废话,我正在编写一些代码,我将如何做到这一点,我看到Falaina发布了这个与我做得更好的想法相同: Getting key of value of a generic Dictionary?

答案 1 :(得分:2)

这通常称为双向地图。如果你不喜欢PowerCollections,那么这里有一个自定义实现:Bidirectional 1 to 1 Dictionary in C#

答案 2 :(得分:1)

那里有一些多键收藏品。尝试:

http://powercollections.codeplex.com/

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

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