すべて地獄!
私はContains
でフィルタリングするためにすべての既知のバリエーションを試しましたが、今のところうまくいきません。
方法#1
ret = ret.Where("CaseID.Contains(@0)", {15, 16, 17})
次のエラーを取得します。
System.Linq.Dynamic.ParseException: 'タイプ' Int32?
方法#2
ret.Where("@0.Contains(outerIt.CaseID)", {15, 16, 17})
次のエラーをもたらす:
System.Linq.Dynamic.ParseException: 'スコープに' it 'はありません'
それで、リストまたは配列でどのようにフィルタリングできますか?
nuget 1.0.7で最新のSystem.Linq.Dynamicライブラリを使用しています
以下は機能しますが、 CaseID
と配列の値が同じタイプであることを確認する必要があります。
ret.Where("@0.Any(outerIt.CaseID=it)", array)
私はあなたの質問を正しく理解しているかどうかはわかりません。しかし、あなたはこのような意味ですか?これはラムダ式で解決されます。
var listA = new[] {1, 2, 3, 5, 8};
var listB = new[] {1, 3, 5, 7, 11};
var res = listA.Where(itemA => listB.Contains(itemA));
// res = {1,3,5}