获取包含值x的Dictionary中的所有键

时间:2013-01-03 19:46:34

标签: c# .net vb.net dictionary

我有这个:

Dictionary<integer, string> dict = new Dictionary<integer, string>();

我想选择字典中包含值abc的所有项目。

是否有内置功能可让我轻松完成此操作?

2 个答案:

答案 0 :(得分:38)

使用LINQ,合理地简单

var matches = dict.Where(pair => pair.Value == "abc")
                  .Select(pair => pair.Key);

请注意,这甚至不会有一点效率 - 它是O(N)操作,因为它需要检查每个条目。

如果您需要经常这样做,您可能需要考虑使用其他数据结构 - Dictionary<,>专门用于按键快速查找

答案 1 :(得分:0)

内置功能?不好意思......但另一种(不那么漂亮)方式是使用foreach(KeyValuePair<integer, string> ...

进行迭代