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

标签 c# .net vb.net dictionary

我有这个:

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

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

是否有内置函数可以让我轻松地做到这一点?

最佳答案

好吧,使用 LINQ 合理简单:

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

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

如果您需要经常这样做,您可能需要考虑使用另一种数据结构 - Dictionary<,>专为按键快速查找而设计。

关于c# - 获取 Dictionary 中包含值 x 的所有键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14146048/

相关文章:

c# - 为什么仅指定列的子集时 MigrationHistory 会导致 Linq 结果不同?

c# - (Asp.Net MVC3) 如何为ASCII 和Unicode 定义StringLength?

c# - 如何从 Azure 自动化中的 Runbook 调用 DLL 中的 C# 方法?

.net - GemBox - 滚动到 View 功能缺失?

.net - 如何让 .NET 取消提交未使用的 RAM?

c# - vb.net 或 c# 中 X2Axis 中的 Zedgraph 幅度问题

vb.net - 正则表达式阻止了程序

javascript - 如何在asp.net c#中使用javascript从ajax组合框中获取选定的值

c# - 在 SICP 中,它表示即使递归调用实际上是迭代的,C 中的内存消耗也会增加。为什么?

c# - C# 和 VB.NET 中的即时窗口行为差异