c# 如何对List<Dictionary<string,object>>()查询操作,集合嵌套键对值
简单的Dictionary<string,object>我们知道可以直接通过key访问值以及查询操作。
当我们在项目开发过程中,如果封装了比较复杂的数据结构时
比如List<Dictionary<string, object>>数据结构。
直接上代码
//组织行数据
List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
foreach (var item in querys)
{
Dictionary<string, object> dict = new Dictionary<string, object>();
dict.Add("Id", item.Key.Id);
dict.Add("PartNumber", item.Key.PartNumber);
dict.Add("PcbPackage", item.Key.PcbPackage);
dict.Add("Symbol", item.Key.Symbol);
dict.Add("Model", item.Key.Model);
dict.Add("Status", item.Key.Status);
foreach (var items in item)
{
if (items.AttributeField == null)
{
continue;
}
dict.Add(items.AttributeField, items.AttributeValue);
}
list.Add(dict);
}
//筛选条件
var resList = from u in list
where u.ContainsKey("PartNumber") && u["PartNumber"].ToString().Contains(partNumber)
&& (
(u.ContainsKey("FirClassification") && u["FirClassification"].ToString().Contains(typeName))
||
(u.ContainsKey("SecClassification") && u["SecClassification"].ToString().Contains(typeName))
||
(u.ContainsKey("ThrClassification") && u["ThrClassification"].ToString().Contains(typeName)))
select u;
通过containsKey判断其中是否存在key值,通过u["key"]直接获取value值,这样,就能进行多条件查询和判断了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义