地狱!
我尝试使用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:'不'它'在范围'
那么,我如何按列表或数组进行过滤?
我正在使用nuget 1.0.7中最新的System.Linq.Dynamic库
答案 0 :(得分:3)
以下内容可行,但您必须确保CaseID
和数组值具有相同的类型。
ret.Where("@0.Any(outerIt.CaseID=it)", array)
答案 1 :(得分:0)
我不确定我是否理解你的问题。 但你的意思是这样的吗? 这是通过Lambda-Expression来解决的。
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}