我正在寻找使用LINQ在类似集合的条件上执行多个where条件
IEnumerable<Object> items;
items.Where(p => p.FirstName = "John");
items.Where(p => p.LastName = "Smith");
除了不具有多个AND条件(如本例所示)外,我想具有多个OR条件。
编辑
抱歉,请澄清一下,我不知道会有多少这种情况
items.Where(p => p.FirstName = "John" || p => p.LastName = "Smith")
将无法正常工作。
基本上,这就是我要做的事情:
foreach(var name in names)
{
items = items.Where(p => p.Name == name);
}
最佳答案
听起来您的白名单仅在运行时才知道。也许试试这个:
string[] names = new string[] {"John", "foo", "bar"};
var matching = items.Where(x => names.Contains(x.Name));
关于linq - 动态LINQ OR条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4391044/