查询列表字典

本文关键字:字典 列表 查询 | 更新日期: 2023-09-27 18:08:01

我有一个字典列表

var ProductItemsDictionary = new List<Dictionary<string, string>>();

是否可以使用linq来搜索列表并根据字典中的键找到字典并检索值?

查询列表字典

当然值得,但是值得吗?例如,查看医生的答案。它将完成这项工作,但效率低下- 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)——我们还需要什么?: -)