18

我有这个:

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

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

是否有一个内置功能可以让我轻松做到这一点?

4

2 回答 2

49

那么使用 LINQ相当简单:

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

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

如果您需要经常执行此操作,您可能需要考虑使用另一种数据结构——Dictionary<,>专为按键快速查找而设计。

于 2013-01-03T19:47:59.243 回答
0

内置功能?不抱歉......但另一种(不是那么漂亮)的方法是迭代使用foreach(KeyValuePair<integer, string> ...

于 2013-01-03T20:00:32.080 回答