【发布时间】:2021-01-21 05:38:10
【问题描述】:
我有一个包含多个列的 DataTable (dt),它是 DataGridView 的源。我正在尝试使用特定列的 值列表 过滤此 DataTable(dt)。
我需要使用员工姓名列表过滤Below DataTable(dt)。 EmpList = {'Pete','Alen'}
这是我的数据表
| Employee | ID | Country |
|---|---|---|
| Pete | 1 | USA |
| Mark | 2 | UK |
| Alen | 3 | AUS |
需要输出:
| Employee | ID | Country |
|---|---|---|
| Pete | 1 | USA |
| Alen | 3 | AUS |
我正在用下面的代码试试
if (EmpList.Any())
{
foreach(string item in EmpList)
{
var dataRows = from dataRow in dt.AsEnumerable()
where (dataRow.Field<string>("Employee").Contains(item))
select dataRow;
dt.Rows.Add(dataRows);
}
}
问题是在这段代码中,DataType(System.Data.EnumerableRowCollection[system.Data.DataRow]) 正在与之前的数据一起填充 DataTable 的行。
【问题讨论】:
-
您有问题吗?请阅读How to Ask 并发布minimal reproducible example。
-
我的 linq foo 很弱,但在我看来,您正在
dt中搜索与item匹配的行,然后尝试将这些行添加回dt。我们这里有XY problem 吗?您是在尝试使用这些元素构建新表,还是过滤现有表? -
@jwdonahue 我正在尝试过滤现有数据表并分配给datagridview。
标签: c# filter datatable datarow