x.LastNam-6ren">
gpt4 book ai didi

c# - 在 where 子句中组合两个 LINQ 条件

转载 作者:行者123 更新时间:2023-11-30 15:30:28 25 4
gpt4 key购买 nike

我有一个像下面这样查询的集合。

this.Collection.AsQueryable().Where(x => x.FirstName = "FirstName" && x => x.LastName= "LastName");

现在基于一个 bool 值,我想在 where 子句中添加另一个 && 条件。

我该怎么做?我尝试了以下。

var firstExpr = x => x.FirstName = "FirstName" && x => x.LastName= "LastName";
var newExpr = firstExpr;
if (includeAge)
{
Expression<Func<T, bool>> ageExpr = x => x.Age == 21;
var combined = Expression.AndAlso(ageExpr.Body, firstExpr.Body);
var newExpr = Expression.Lambda<Func<T, bool>>(combined);
}

this.this.Collection.AsQueryable().Where(newExpr);

但我得到一个异常 - System.ArgumentException:为 lambda 声明提供的参数数量不正确

最佳答案

如果这是内存中收集,则没有理由转换为可查询:

IEnumerable<YourType> query = this.Collection.Where(x => x.FirstName = "FirstName" && x => x.LastName= "LastName");

if (includeAge)
query = query.Where(x => x.Age == 21);

关于c# - 在 where 子句中组合两个 LINQ 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22077903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com