C#检查List是否是另一个List的一部分

Ron*_*ona 5 c# linq comparison list subset

我有两个列表如下

 var query1 = from enrollments in db.Enrollments
             where enrollments.studentID == studentID && enrollments.result >= 50 && enrollments.enrolled == false
             select enrollments.subjectID;
 var query2 = from prerequisites in db.Prerequisites
              where prerequisites.subjectID == subjectID
              select prerequisites.prerequisiteID;
Run Code Online (Sandbox Code Playgroud)

现在我想确保query2中的所有数字都存在于query1中.换句话说,我想确保query2是query1的一部分

有任何想法吗?

PS

-你可以肯定的是subjectIDprerequisiteID是一回事

- 我可以将query1和query2转换为这样的列表 query.ToList()

Jon*_*Jon 7

您只需检查以查看query2和之间的集合差异query1是否为空集:

var isSubset = !query2.Except(query1).Any();
Run Code Online (Sandbox Code Playgroud)

请参阅LINQ方法Enumerable.ExceptEnumerable.Any.