C# 如何使用其他列表筛选列表?

C# 如何使用其他列表筛选列表?,c#,linq,C#,Linq,我们有以下员工名单 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.Ad

我们有以下员工名单

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" });
有谁能帮我们只找到101103名员工


提前感谢。

您不需要使用
ToString()
,它可以处理任何数据类型,而不仅仅是字符串。您当前的代码应该给出一个错误,因为
selectedEmployeeIds
的类型是
long
,并且您正在对照
字符串检查它

var selectedEmployees= (from record in EmployeeList 
                       where selectedEmployeeIds.Contains(record.Id) 
                       select record).ToList();

您不需要使用
ToString()
,它可以处理任何数据类型,而不仅仅是字符串。您当前的代码应该给出一个错误,因为
selectedEmployeeIds
的类型是
long
,并且您正在对照
字符串检查它

var selectedEmployees= (from record in EmployeeList 
                       where selectedEmployeeIds.Contains(record.Id) 
                       select record).ToList();

最后,我们得到了上述查询的结果

List<Employee> filteredRecords = (from a in EmployeeList join b in selectedEmployeeIds on a.ID equals b select a).ToList();
List filteredRecords=(从EmployeeList中的a加入a.ID上SelectedEmployeeID中的b等于b选择a);

最后,我们得到了上述查询的结果:

List<Employee> filteredRecords = (from a in EmployeeList join b in selectedEmployeeIds on a.ID equals b select a).ToList();
List filteredRecords=(从EmployeeList中的a加入a.ID上SelectedEmployeeID中的b等于b选择a);

对不起。恐怕Contains()只接受char或string。任何其他可能性,如join table。@Sravan,不,不,请尝试上面的代码,如果您的
记录.Id
的类型为long,则此代码应该可以工作。@Sravan,对于示例代码,此
selectedEmployeeIds.Contains(101)
也将返回true。恐怕Contains()只接受char或string。任何其他可能性,如join table。@Sravan,不,不,请尝试上面的代码,如果您的
记录.Id
的类型为long,则此代码应该可以工作。@Sravan,以及此
selectedEmployeeIds.Contains(101)
将为您的示例代码返回true