C#中的双向KeyValuePair集合

时间:2012-09-06 10:18:28

标签: c# linq collections dictionary key-value

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

Bidirectional 1 to 1 Dictionary in C#

答案 1 :(得分:0)

你可以封装两个词典,一个用你的&#34;键&#34;存储您的值,而另一个键入您的&#34;值&#34;存储你的钥匙。

然后通过几种方法管理对它们的访问。快速和增加的内存开销不应该产生巨大的差异。

编辑:注意到这与前一个答案基本相同: - /