我有两个基于其他对象的列表。
List<Emyployee> emyployeeList;
List<Display> displayEmployeeList;
他们都有员工的身份证,但第二个列表中只有少数人。 我想过滤employeeList,我拥有不在displayEmployeeList中的所有id。
我该怎么做?
答案 0 :(得分:0)
如果displayEmployeeList
有多个项目,您会发现创建一种索引非常有用(就像RDBMS一样):
// let id be integer
HashSet<int> ids = new HashSet<int>(displayEmployeeList
.Select(item => item.id)
);
// Just Linq where
var result = emyployeeList
.Where(item => !ids.Contains(item.id));
答案 1 :(得分:0)
您可以使用Zip扩展方法,并执行以下操作:
employeeList.Zip(displayEmployeeList,(employee,display) =>
{
if(employee.Id != display.Id)
return employee;
});