linq - 动态LINQ OR条件

标签 linq

我正在寻找使用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/

相关文章:

c# - Entity Framework - 在 DeleteObject 上访问数据库的次数

c# - 如何判断 JSON 结果是对象还是数组?

mysql - 使用 ASP.NET MVC、LINQ 和 Entity Framework 从 SQL Server 2008 切换到 MySQL

c# - 在 javascript 中编写类似 linq 查询的语句

c# - 构建 SQL Where 来自委托(delegate)的查询

c# - 将字符串转换为 Linq.Expressions 或使用字符串作为选择器?

c# - 将许多 TimeSpans 减少为更少的平均 TimeSpans 的干净方法?

c# - 序列在 linq 中不包含任何元素异常,甚至不使用 Single

c# - 我如何比较和搜索字符串和日期时间 C#

c# - 使用字符串通过 DbContext 访问表