我们拥有以下员工名单。如何使用另一个列表过滤列表?
List<Employee> EmployeeList =new List<Employee>();
EmployeeList.Add(new Employee{ Id=101, Name="XYZ" });
EmployeeList.Add(new Employee{ Id=102, Name="QRS" });
EmployeeList.Add(new Employee{ Id=103, Name="ABC" });
EmployeeList.Add(new Employee{ Id=1101, Name="DEF" });
和选定的员工ID列表如下。
List<long> selectedEmployeeIds={ 101,103 };
我们想过滤从上面EmployeeList中选择的员工。我们尝试使用包含如下,但其取得3个记录为101,102,1101。
var selectedEmployees= (from record in EmployeeList where selectedEmployeeIds.Contains(record.Id.ToString()) select record).ToList(); // returning 3 records.
可以在任何一个帮助我们只拿到雇员101,103。
在此先感谢。
对不起。恐怕,Contains()只接受字符或字符串。任何其他可能性,如连接表。 – Sravan 2013-02-19 12:45:31
@Sravan,不,它不会,尝试上面的代码,如果你的'record.Id'类型很长,这段代码应该可以工作。 – Habib 2013-02-19 12:46:38
@Sravan,这个'selectedEmployeeIds.Contains(101)'也会返回true为您的示例代码 – Habib 2013-02-19 12:47:07