我有一个类似下面的课程
Class MyClass {
string Name ;
List<int> scoreList; //this contains integer values
}
我有一个代码来填充数据库
中上面类类型的对象列表List<MyClass> newList = //fill from db
我有一个单独的整数列表,有一些数字
List<int> filterList = new filterList();
现在我想将对象列表(newList)过滤为filterList值中属性scoreList的任何值
我编写的代码如下,但似乎给出了错误的结果
newList = newList .Where(x => x.scoreList.All(s => filterList .Contains(s))).ToList();
你能帮我用c#写一个Linq查询吗?
答案 0 :(得分:1)
newList = newList.Where(s=>s.ScoreList.Intersect(filterList).Any()).ToList();
答案 1 :(得分:1)
如果你想要newList中的所有项目,其中一个或多个scoreList值出现在filterList中,那么这应该这样做:
newList = newList.Where(x => x.scoreList.Any(s => filterList.Contains(s))).ToList();