我正在使用表达式树在LINQ中构建动态查询。
我已参考以下帖子 https://www.codeproject.com/Tips/582450/Build-Where-Clause-Dynamically-in-Linq
如果要检查列表中所有元素是否包含在另一个集合中,如何构建表达式?
我有一个Person类
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
我有一个清单
List<Person> personList = new List<Person>()
{
new Person{ Name = "Shekhar", Age = 31},
new Person{ Name = "Sandip", Age = 32},
new Person{ Name = "Pramod", Age = 32},
new Person{ Name = "Kunal", Age = 33}
};
我还有另一个列表
List<string> nameList = new List<string>() { "Sandip", "Prashant" };
如何构建表达式树以检查“ personList”中包含的“ nameList”列表中的所有元素,并给出结果为真还是假?
答案 0 :(得分:0)
尝试:
public bool Find(List<string> nameList, List<Person> personList)
{
foreach (var name in nameList)
if (personList.FirstOrDefault(person => person.Name == name) != null)
{
// Find
return true;
}
return false;
}
答案 1 :(得分:0)
尝试一下:
bool contained = !personList.Select(l=>l.Name).Except(nameList).Any();