【发布时间】:2021-06-29 21:24:18
【问题描述】:
var row = parser.ReadFields();
Expression<Func<DataRow, bool>> expression = null;
foreach (var pairToCheck in mappingDictionary)
{
Expression<Func<DataRow, bool>> newCondition = r => r[pairToCheck.Value].ToString() == row[pairToCheck.Key];
if (expression == null)
expression = newCondition;
else
expression = Expression.And(expression, newCondition.Body); // Compile error, I can't do this apparently
}
var recordFound = dt.AsEnumerable().Where(expression.Compile()).Count() > 0;
请参见上面的代码,我试图在 DataTable (var dt) 中查找记录,但该记录必须满足的条件数量是可变的。我尝试使用 Expression.And 添加条件,但它会将表达式转换为 BinaryExpression 类型,我无法再将其转换回原来的 Expression
【问题讨论】:
标签: c#