何時間も試して検索した後、今すぐ私の問題をあなたと共有する時が来たと思います。
問題の定義:整数(PropertyID)と文字列(McValue )を含むKeyValuePairs(filterPoolという名前)の辞書があります。私がやろうとしているのは、それらのKeyValuePairsに応じて製品をフィルタリングし、それらをDataTable/Listとして返すことです。これは、動的な「Where ...And..」句をSQLとして構築することと見なすことができます。
これが私が使用しているコードです:
foreach (KeyValuePair<int, string> filter in filterPool)
{
products = products.Where(i => i.PROPERTYID == filter.Key && i.MCVALUE.Equals(filter.Value));
}
return products.ToDataTable();
問題は、辞書で利用可能な最新のKeyValuePairに対して、上記のforeachループが1回だけ機能するように見えることです。
Stackoverflowで見つけた限り、私の問題に最も近い解決策は次のとおりでした:これもフィルタリングに値のディクショナリを使用しています
辞書とLINQを使用してフィルタリングするという目標を達成する方法が必要です。または、私が何とかして見落としている/無視している巨大なものがあります。
与えられた問題がすべての人にとって十分に明確であることを願っています、ありがとう^^