我有可能是一个非常大的Dictionary对象列表,我需要从键中找到一个特定的值.我当然可以这样做
foreach(Dictionary<long, string> t in Foo)
{
if (t.TryGetValue(key, out name))
break;
}
Run Code Online (Sandbox Code Playgroud)
这将很高兴地遍历Foo,直到它找到密钥或foreach结束.
为了加快速度,我宁愿使用少量的LINQ.如果这是一个普通的列表,我会没事的,但由于这是一个Dictionary对象列表,我不太清楚它是如何完成的.
帮助或建议表示赞赏.
我想你已经写了你想要做的最有效的版本.由于Linq不能很好地处理输出参数,因此需要稍长的时间.但是你会这样做:
var dict = Foo.FirstOrDefault(d => d.ContainsKey(key));
if (dict != null) { dict.TryGetValue(key, out name); }
Run Code Online (Sandbox Code Playgroud)