にLINQでのIQueryable
list
に何千ものオブジェクトが含まれている場合は、
Preprocess
はすべて処理するのではなく、
Where
節で選択されたオブジェクトだけを処理します。
Preprocess
をクエリの最後に移動する方が良いと思われるのはわかりますが、私はそのようにする理由があります。
IQueryable<T>
で可能ですか?または、IEnumerable
のように動作しますか?LINQからオブジェクトへのパイプライン全体が厳密に連続していますか?
このようなLINQアイテムは、次に来るものが分からないので、あなたが求めているものは不可能だと最初は言います。それを書く別の方法は次のようになります: 'var preprocessed = list.Preprocess(); var whereResult = preprocessed.Where(); var selection = whereResult.ToList(); 'このようにリストされると、どのステートメントも次のステートメントについての知識を持っていないことがわかります。 – GTHvidsten
前処理メソッドにセレクタ述語を取ってもらえますか?前処理(x => x.MyProperty == 42)? – sondergard
興味のないところでは、Whereの後に前処理を置くだけの理由はありますか? – Evk