C# Linq-Expression.And连接N个元素BinayExpression
我有一个BinaryExpression列表,我需要将该列表中的元素连接到一个“对象”中 我需要这样的东西:C# Linq-Expression.And连接N个元素BinayExpression,c#,linq,expression-trees,linq-expressions,C#,Linq,Expression Trees,Linq Expressions,我有一个BinaryExpression列表,我需要将该列表中的元素连接到一个“对象”中 我需要这样的东西: (item => item.Field1 == 1 && item.Field2 == 99 && item.Field3 == 45) Expression<Func<T, bool>> expr = Expression.Lambda<Func<T, bool>>(singleExpression
(item => item.Field1 == 1 && item.Field2 == 99 && item.Field3 == 45)
Expression<Func<T, bool>> expr = Expression.Lambda<Func<T, bool>>(singleExpression, parameter);
我知道Linq有表达式,我需要做一个逻辑来实现它,但我不能。我试图在我的列表中创建一个循环,但没有表达式。需要两个表达式,而在我的循环中只有一个。
在此之后,我将从这个“对象”生成一个表达式.Lamba,如下所示:
(item => item.Field1 == 1 && item.Field2 == 99 && item.Field3 == 45)
Expression<Func<T, bool>> expr = Expression.Lambda<Func<T, bool>>(singleExpression, parameter);
Expression expr=Expression.Lambda(单表达式,参数);
我想你想要(与LINQ一起):
如果您喜欢编写循环:
var singleExpression = lstBin.First();
foreach (var expr in lstBin.Skip(1))
singleExpression = Expression.AndAlso(singleExpression, expr);
实际上,您应该使用Expression.AndAlso而不是按位Expressopm。如这里所述:@eluxen:Yes;你说得对。不记得那是怎么从我身边溜走的。
var singleExpression = lstBin.First();
foreach (var expr in lstBin.Skip(1))
singleExpression = Expression.AndAlso(singleExpression, expr);