简单的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值,这样,就能进行多条件查询和判断了