查询列表字典
本文关键字:字典 列表 查询 | 更新日期: 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)——我们还需要什么?: -)