[英]Linq with critera for nested list
我有以下课程的嵌套列表:
public class ClassD
{
public DateTime EndDate { get; set; }
public List<StructKeyValuePair<string, string>> StructKeyValPairs { get; set; }
}
public class StructKeyValuePair<K, V>
{
public K Key { get; set; }
public V Value { get; set; }
}
我有List<ClassD> resultList
并且需要检查该列表中是否存在具有此条件的行:
EnDate > today
Key == "Key1" and Value != "Value1"
Key == "Key2" and Value == "Value2"
根据是否满足此条件,我需要返回true
或false
。 有没有一种简单的方法可以在单行中使用Linq而不是使用嵌套循环?
也许是这样,使用Linq Any
:
bool condition = resultList.Any(row =>
row.EndDate > DateTime.Today
&& row.StructKeyValPairs.Any(kvp => kvp.K == "Key1" && kvp.V != "Value1")
&& row.StructKeyValPairs.Any(kvp => kvp.K == "Key2" && kvp.V == "Value2")
);
如果所有行都存在,则返回true(不确定我是否猜对了确切的逻辑):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.