【发布时间】:2015-11-08 17:31:43
【问题描述】:
我有一个字典列表
var ProductItemsDictionary = new List<Dictionary<string, string>>();
是否可以使用 linq 搜索列表并根据字典中的键查找字典并检索值?
【问题讨论】:
标签: c# .net linq dictionary
我有一个字典列表
var ProductItemsDictionary = new List<Dictionary<string, string>>();
是否可以使用 linq 搜索列表并根据字典中的键查找字典并检索值?
【问题讨论】:
标签: c# .net linq dictionary
当然可以,但值得吗?例如,请参阅 dotctor 的答案。它会完成这项工作,但效率低下 - 2 个键查找(一个用于检查,一个用于检索值)、编译器生成的类和堆分配(因为 specificKey 变量捕获)等。更少的代码?更具可读性?非 linq 等价物呢:
static void Foo(List<Dictionary<string, string>> ProductItemsDictionary, string key)
{
string value;
foreach (var dictionary in ProductItemsDictionary)
if (dictionary.TryGetValue(key, out value)) { /* Use value */ }
// Not found
}
零分配、最少的键查找、良好的可读性 (IMO) - 我们还需要什么? :-)
【讨论】: