メソッド内のLINQクエリで使用される「場所」ラムダ式を渡す必要があります。問題は、メソッドに入るまで、どこの値を比較するのか分かりません。ラムダ式をビルドしてメソッドに渡す
ここでさらに説明し、私が上で述べたことのいくつかを明確にするために、私は少しの人為的な例を考え出します。
私はがあり、ProductsオブジェクトのproductId
プロパティを使用してそのリストを1つのレコードに絞り込む必要があるとします。私はList<Products>
に限定されず、代わりにとても理想的List<T>
ですされていないメソッドに上記のロジックを配置する必要があり、私はなるだろう -
var product = productList.Where(p=>p.productId == 123).FirstOrDefault();
今さらに一歩それを取る:通常私はこれを行うだろうこのようにそれを呼び出す(と私は以下の動作しません知っている、それは私が達成しようとしているかを示すために、ここで簡単にです):
myMethod(productList, p => p.productId == X)
注意点はXが知られていないことをされた状態で私はまでメソッド内。
最後に、私のデータのコレクションがOData DataServiceQuery
であることを指摘する必要があります。
私の質問を再要約するには:メソッドに渡すことができるラムダ "where"式を構築する方法と、LINQクエリのオブジェクトのコレクションに対してこのメソッドを使用する方法を知る必要があります。
Tは常にproductIdプロパティを持っていますか? – sll
いいえ、productIdは必ずしもプロパティではありません。時々私はユーザーのリストを持っているかもしれないので、それはUserId、あるいはCompanyオブジェクトのセットのcompanyIdでしょう。 – bugfixr