列表列表包含linq中的另一个列表

时间:2014-05-29 00:23:18

标签: c# .net linq

我知道标题有点令人困惑,但让我试着让它更容易理解。

我有两个对象:

List<Professional>

List<Skills>

但每个Professional都有一个

List<Skills>

所以我有这样的事情:

var allProfessionals = getAllProfessionals();
var jobOffertSkills = jobOffert.Skills;

所以我的问题是,使用linq,我如何获得包含jobOffertSills中包含的所有技能的专业人员?

2 个答案:

答案 0 :(得分:7)

var machingProfessionals = allProfessionals.Where(p => jobOffertSkilss.All(sk => p.Skills.Contains(sk)));

答案 1 :(得分:1)

假设班级Skill实现了IEquatable<Skill>,那么你可以试试这个:

var professionals = getAllProfessionals();
var requiredSkills = jobOffert.Skills;

var qualifiedProfessionals = professionals.Where(
    p => !requiredSkills.Except(p.Skills).Any());