シナリオ: リストと 3 つの検索フィルターがあります。何かのようなもの:
ResultList = OriginalList.Where(filter1).Where(filter2).Where(filter3);
質問: フィルター 3 を更新してから、LINQ でフィルター 1 とフィルター 2 を実行せずに ResultList を更新することはできますか? (パフォーマンスを上げたい)
基本的には、次のようになります。
Result1 = OriginalList.Where(filter1).Where(filter2);
Result2 = Result1.Where(filter3);
UpdateFilter3(); // Just changes the filter somehow
Result2 = Result1.Where(filter3);
return Result2;
これは追跡するのが少し面倒ですが、これを行うためのよりスマートな方法があるかどうか疑問に思っていましたか? Continuous LINQ (CLINQ: http://clinq.codeplex.com/ ) を見ましたが、基本的には、フィルターの 1 つだけが変更されるたびに WHERE ステートメント全体を更新するように LINQ に指示しているようです。
知恵の言葉は大歓迎です:)
ありがとう、
マイケル