按属性过滤对象列表,它是一个整数列表

时间:2017-09-12 16:15:41

标签: c# linq

我有一个类似下面的课程

 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查询吗?

2 个答案:

答案 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();