Bi-directional dictionary?
本问题已经有最佳答案,请猛点这里访问。
我有两组对象,在某些情况下,第一组将用作另一组的键,在其他情况下,第二组将用作第一组的键。此外,两个列表中都不能有重复项。
要使用什么样的数据结构来实现这一点?我应该用两本字典还是有更聪明的方法?
对数据结构有更深入了解的人可能会给出更好的建议,但就个人而言,我会使用两个字典以方便使用。您可以对1个字典执行相同的操作,但访问时间会增加。
编辑:废话,我只是在写一些代码的过程中,我会怎么做,我看到法莱纳发布了这个想法,这和我做得更好的一样:获得通用字典的价值键?
这通常被称为双向映射。如果您不喜欢PowerCollections,这里有一个自定义实现:C语言中的双向1到1字典#
这里有一些多键集合。尝试:
http://powercollections.codeplex.com/
或
http://www.codeproject.com/kb/recipes/multikey-dictionary.aspx
Wintelect的能量收集可能是一个很好的开始。他们有一个测试多学科作为他们的一部分。