我知道标题有点令人困惑,但让我试着让它更容易理解。
我有两个对象:
List<Professional>
List<Skills>
但每个Professional
都有一个
List<Skills>
所以我有这样的事情:
var allProfessionals = getAllProfessionals();
var jobOffertSkills = jobOffert.Skills;
所以我的问题是,使用linq,我如何获得包含jobOffertSills中包含的所有技能的专业人员?
答案 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());