Linq - Expression.And 连接 N 个元素 BinayExpression
我有一个 BinaryExpression 列表,我需要将该列表的元素加入到一个“对象”中。
IList<BinaryExpression> lstBin = new List<BinaryExpression>();
在我的列表中,我有这样的内容:
{(item.Field1 = 1)} //First Element
{(item.Field2 = 99)} //Second Element
//So on..
我需要这样的东西:
(item => item.Field1 == 1 && item.Field2 == 99 && item.Field3 == 45)
我知道 Linq 有 Expression.And,并且我需要制定一个逻辑来实现它,但我做不到。我试图在我的列表中创建一个循环,但是 Expression.And 需要两个表达式,而在我的循环中我只有一个。 之后,我将从这个单一的“对象”创建一个 Expression.Lamba,如下所示:
Expression<Func<T, bool>> expr = Expression.Lambda<Func<T, bool>>(singleExpression, parameter);
I have a list of BinaryExpression and I need to join the elements of this list in a single "object".
IList<BinaryExpression> lstBin = new List<BinaryExpression>();
Inside my List I have this:
{(item.Field1 = 1)} //First Element
{(item.Field2 = 99)} //Second Element
//So on..
I need something like this:
(item => item.Field1 == 1 && item.Field2 == 99 && item.Field3 == 45)
I know that Linq has Expression.And, and I need to make a logic to implement this, but I couldn't. I tried to make a loop inside my list but Expression.And needs two Expression, and inside my loop I have only one.
After this, I'll make a Expression.Lamba from this single "object", like this:
Expression<Func<T, bool>> expr = Expression.Lambda<Func<T, bool>>(singleExpression, parameter);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为你想要(使用 LINQ):
如果你更喜欢编写循环:
I think you want (with LINQ):
If you prefer writing a loop: