我有两个清单:
List<Course> studentCourses = Course.GetCourses(student.PIDM, GetTermCode());
List<OfferedCourse> offeredCourses = OfferedCourse.GetOfferedCourses();
studentCourses的属性为SubjectCode
和CourseNumber
providedCourses还具有属性SubjectCode
和CourseNumber
。
我想创建一个类型为List<Course>
的第三个列表,其中只包含studentCourses
中与SubjectCode
项CourseNumber
和offeredCourses
匹配的项目}。
非常感谢任何帮助。
答案 0 :(得分:0)
Linq使用了非直观的语法:使用可能包含您所追求的值的集合中的Contains
。
var result = studentCourses.Where(c => offeredCourses.Contains(o => o.SubjectCode == c.SubjectCode && o.CourseNumber == c.CourseNumber));
答案 1 :(得分:0)
解决方案最终成为:
IEnumerable<Course> courses = studentCourses.Where(sc => offeredCourses.Any(oc => oc.SubjectCode == sc.SubjectCode && oc.CourseNumber == sc.CourseNumber));
非常感谢cosmo0指出我正确的方向,而马格努斯又仔细检查了我的工作!