10

この例では、3つの式を作成し、それらを1つの式の配列に追加します。ここで、式の数が不明な場合に、ループで同じことを行う方法を知りたいと思います。

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 };
4

1 に答える 1

9

配列の代わりにリストを使用します。

var filterExpressions = new List<Expression<Func<Product, bool>>>
    { filter1, filter2, filter3 };

filterExpressions.Add(c => c.Name.StartsWith("J"));

そして、何らかの理由で、配列のみを受け取るメソッドにリストを渡す必要がある場合は、ToArray()メソッドを使用できます。

var filterExpressionsArray = filterExpressions.ToArray();
于 2012-04-15T14:49:26.213 に答える