1
我有一个BinaryExpression的列表,我需要在单个“对象”中加入这个列表的元素。Linq - Expression.And加入N个元素BinayExpression
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);
谢谢,工作完美! – Gandarez
实际上,您应该使用Expression.AndAlso而不是按位Expressopm.And,如下所述:http://blogs.microsoft.co.il/blogs/idof/archive/2009/08/26/expressiontype-and- vs-expressiontype-andalso.aspx – eluxen
@eluxen:是;你是对的。不记得我是如何滑倒的。 – Ani