2012-04-15 23 views
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 }; 
+1

追加または作成しますか? – Arion

+0

作成と追加: – Tys

+1

@Arion良い質問。 TysHTTP - あなたがここで「どこにいらっしゃった」ところがどこか明確ではない。私はそれが何らかの形で物事の「動的な」性質であると推測しています。 – NSGaga

答えて

8

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

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

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

そしてあなたは、いくつかの理由で、唯一あなたがたToArrayを(使用できる配列を取るメソッドにリストを渡す必要がある場合)メソッド:

var filterExpressionsArray = filterExpressions.ToArray(); 
+0

OPがこれを知っているだろうと思う表現を使って作業してください - しかし私は質問をそのまま与えてくれると思いますが、これがこの時点で唯一可能な答えです。 – BrokenGlass

+0

申し訳ありませんが、私はすでに他の方法で修正しました。リストがどのように私をここに助けてくれるのか忘れたと思う。 List.ToArray()にコードを更新しました。ありがとう! – Tys

関連する問題