【发布时间】:2019-02-28 09:50:28
【问题描述】:
所以我有List 的Dictionary<string, object>
我想用 2 个列名的条件解析 1 个项目:
如果我搜索列名为“Id”的 1 个项目,我会这样做:
var collection ....
var result = collection.OfType<Dictionary<string, object>>()
.SelectMany(d => d.Where(x => x.Key == "id"))
.Where(x => x.Value?.ToString() == "1234")
.ToList();
我在这里搜索列名为Id 的项目,其值为1234,这很好。
现在我想添加一些条件:
我想搜索列名 Id 和值 1234 和列名 "Class" 的项目,我想获得 "Class" 列名值。
有什么建议吗?
【问题讨论】:
-
你问题的最后一部分有点令人困惑。以表格形式显示输入和预期输出会有所帮助。
-
看起来您的集合中的项目是动态对象,其属性名称在键中,它们的值在值中(很有可能您只是错误地反序列化了 JSON 或其他东西),所以我不选择具体的属性建议您将此字典转换为 DTO,然后执行最先进的选择和过滤。
标签: c# linq dictionary