【问题标题】:A two way KeyValuePair collection in C#C# 中的双向 KeyValuePair 集合
【发布时间】:2012-08-31 03:25:45
【问题描述】:

通过创建Dictionary<int,int>List<KeyValuePair<int,int>>,我可以创建相关ID 列表。

通过调用collection[key],我可以返回针对它存储的相应值。

我也希望能够通过传入一个值来返回密钥 - which I know is possible using some LINQ,但它似乎效率不高。

在我的例子中,每个键都是唯一的,每个值也是唯一的。这个事实是否可以使用另一种提供更好性能的方法?

【问题讨论】:

  • 如果键和值的类型相同且不同,则可以将两个关联(k -> vv -> k)添加到同一个字典中,只要您不需要知道哪个是哪个。

标签: c# linq collections dictionary key-value


【解决方案1】:

听起来您需要一个双向字典。没有支持这一点的框架类,但您可以实现自己的:

Bidirectional 1 to 1 Dictionary in C#

【讨论】:

    【解决方案2】:

    你可以封装两个字典,一个用你的“键”存储你的值,另一个用你的“值”键存储你的键。

    然后通过几种方法管理对它们的访问。速度快,增加的内存开销应该不会有太大的不同。

    编辑:刚刚注意到这与之前的答案基本相同:-/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-22
      • 2021-07-29
      • 2012-06-13
      • 2011-05-17
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      相关资源
      最近更新 更多