我开始喜欢 Lambda 表达式,但我正在努力通过这堵墙:
public class CompanyWithEmployees {
public CompanyWithEmployees() { }
public Company CompanyInfo { get; set; }
public List<Person> Employees { get; set; }
}
我的搜索:
List<CompanyWithEmployees> companiesWithEmployees = ws.GetCompaniesWithEmployees();
CompanyWithEmployees ces = companiesWithEmployees
.Find(x => x.Employees
.Find(y => y.PersonID == person.PersonID));
所以,我想获取对象“CompanyWithEmployees”,它具有我正在寻找的那个人(雇员),但我得到“无法将‘人’隐式转换为‘ bool ’)"这是正确的,但是如果我不传递 Person 对象,第一个 Find 怎么执行?
最佳答案
因为你想检查是否存在,也许试试:
ces = companiesWithEmployees
.Find(x => x.Employees
.Find(y => y.ParID == person.ParID) != null);
这将检查具有相同 ParID
的任何 Person
;如果您指的是相同的 Person
实例(引用),那么 Contains
就足够了:
ces = companiesWithEmployees
.Find(x => x.Employees.Contains(person));
关于c# - Lambda 表达式,如何在对象内部进行搜索?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/415866/