[英]Filter List based on another list
我有两个基于其他对象的列表。
List<Emyployee> emyployeeList;
List<Display> displayEmployeeList;
他们两个都有雇员的ID,但是第二个列表中只有几个。 我想过滤我在displayEmployeeList中拥有所有id的employeeList。
我怎样才能做到这一点?
如果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));
您可以使用Zip扩展方法,如下所示:
employeeList.Zip(displayEmployeeList,(employee,display) =>
{
if(employee.Id != display.Id)
return employee;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.