C# C中LINQ到数据集行过滤器的语法?

C# C中LINQ到数据集行过滤器的语法?,c#,linq-to-dataset,C#,Linq To Dataset,我有两个数据表,一个是主表,其余的是一个子表,我使用的是强类型数据集 范例 员工表 城市初始表 只有当employee表中的“city”与的任何CityInitial匹配时,我才必须从employee表中选择行 城市初始表。我试过了 var _filter = EmployeeTable.AsEnumerable(). Select(x=>x.Field<string>("City")).Contains (CityInitials.AsEnumerable().Field&l

我有两个数据表,一个是主表,其余的是一个子表,我使用的是强类型数据集

范例

员工表

城市初始表

只有当employee表中的“city”与的任何CityInitial匹配时,我才必须从employee表中选择行 城市初始表。我试过了

var _filter = EmployeeTable.AsEnumerable().
Select(x=>x.Field<string>("City")).Contains
(CityInitials.AsEnumerable().Field<string>("CityInitials").Select(row=>row);

请建议实现结果的正确查询是什么?

我假设这些实际上是类型化数据集?在不确切了解您使用的是什么的情况下,我将以下内容称为我预期工作的近似值:

var cities = CityInitials.Rows.Select(x => x.CityInitials).ToList();
var _filter = EmployeeTable.Rows.Where(x => cities.Contains(x.City));

当您尝试这样做时发生了什么?您正在从数据库查询数据…对不起,我不知道连接语法。这在这里不合适吗?
var _filter = EmployeeTable.AsEnumerable().
Select(x=>x.Field<string>("City")).Contains
(CityInitials.AsEnumerable().Field<string>("CityInitials").Select(row=>row);
var cities = CityInitials.Rows.Select(x => x.CityInitials).ToList();
var _filter = EmployeeTable.Rows.Where(x => cities.Contains(x.City));