我有一个名为“DTHead”的数据表,其中包含以下记录,
MIVID Quantity Value
------ ---------- --------
1 10 3000
1 20 3500
1 15 2000
2 20 3000
2 50 7500
3 25 2000
这里,我需要将上面的DataTable根据MIVID拆分成如下三张表;
DTChild1:
MIVID Quantity Value
------- ---------- ---------
1 10 3000
1 20 3500
1 15 2000
DTChild2:
MIVID Quantity Value
------- ---------- ---------
2 20 3000
2 50 7500
DTChild3:
MIVID Quantity Value
------- ---------- ---------
3 25 2000
假设,如果Header DataTable包含4个不同的MIVID手段,那么应该根据MIVID创建4个Child DataTable。如何做到这一点?
最佳答案
使用LINQ to DataTable
按GroupBy
对第一列进行分组,并使用方法CopyToDataTable将行列表复制到 DataTable
List<DataTable> result = DTHead.AsEnumerable()
.GroupBy(row => row.Field<int>("MIVID"))
.Select(g => g.CopyToDataTable())
.ToList();
然后您可以按照预期获得作为 DataTable 列表的结果。
关于c# - 根据列值将 DataTable 拆分为 2 个或更多 DataTable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12740353/