根据Column值将DataTable拆分为2个或更多DataTable
我有一个名为“DTHead”的DataTable,它有以下记录,
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 result = DTHead.AsEnumerable() .GroupBy(row => row.Field("MIVID")) .Select(g => g.CopyToDataTable()) .ToList();
然后,您可以按预期将结果作为DataTable列表获取。