c# - 从字典对象列表中查找值

标签 c# linq

我有可能是一个非常大的字典对象列表,我需要从一个键中找到一个特定的值。我当然可以做类似的事情

foreach(Dictionary<long, string> t in Foo)
{
    if (t.TryGetValue(key, out name))
        break;
}

这将愉快地遍历 Foo 直到找到键或 foreach 结束。

为了加快速度,我宁愿使用少量的 LINQ。如果这是一个普通列表,我会同意,但由于这是一个 Dictionary 对象列表,我不太确定它是如何完成的。

感谢帮助或建议。

最佳答案

我认为你已经写出了你想做的最有效的版本。由于 Linq 不能很好地处理输出参数,因此需要稍长的时间。但这是您将如何做到的:

var dict = Foo.FirstOrDefault(d => d.ContainsKey(key));
if (dict != null) { dict.TryGetValue(key, out name); }

关于c# - 从字典对象列表中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16425102/

相关文章:

c# - 在 linq 连接的结果中为 null 设置默认值

c# - 如何将字符串变量作为container.dataitem中的列名传递

c# - C# .NET 中的表单

c# - C#中=>运算符的名称

c# - 合并列表并从两者中选择属性

jquery - 按日期对对象数组进行排序

c# - Windows窗体——从不同的窗体调用相同的函数

c# - 将匿名数组添加到属性中。不可能?

c# - 如何找到 ASP.Net 网站中的死锁

linq - 使用动态 Linq Entity Framework 查询引发的奇怪异常