我有这个示例,它创建了 3 个表达式并将它们添加到一个表达式数组中。 现在我想知道如何在循环中为未知数量的表达式做同样的事情。
Expression<Func<Product, bool>> filter1 = c => c.City.StartsWith("S");
Expression<Func<Product, bool>> filter2 = c => c.City.StartsWith("M");
Expression<Func<Product, bool>> filter3 = c => c.ContactTitle == "Owner";
Expression<Func<Product, bool>>[] filterExpressions = new Expression<Func<Product, bool>>[] { filter1, filter2, filter3 };
最佳答案
使用列表而不是数组:
var filterExpressions = new List<Expression<Func<Product, bool>>>
{ filter1, filter2, filter3 };
filterExpressions.Add(c => c.Name.StartsWith("J"));
然后,如果出于某种原因,您需要将列表传递给只接受数组的方法,您可以使用 ToArray() 方法:
var filterExpressionsArray = filterExpressions.ToArray();
关于c# - 将过滤器表达式动态添加到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10163015/