按列分组DataTable并转换为List <datatable>

时间:2019-03-11 08:02:15

标签: c# linq datatable

我有一个如下所示的数据表:

keytool -list -printcert -jarfile foo.apk

我想通过 Category 类别对它进行分组,并将每个相似的分组 convert 分组为 DataTable 并放置放在列表中。因此,我需要具有如下的 3 数据表:

数据表1

Category | Amount
Food     | 10
Drink    | 20
Clothes  | 50
Drink    | 30
Food     | 40
Clothes  | 5

数据表2

Category | Amount
Food     | 10
Food     | 40

数据表3

Category | Amount
Drink    | 20
Drink    | 30

关于如何实现上述目标的任何建议? 我只能找到想要输出1个DataTable的问题。

1 个答案:

答案 0 :(得分:3)

您可以通过这种方式将Linq用于对象(将Linq用于数据集)

List<DataTable> tablesByCategory = 
    table.AsEnumerable().
          GroupBy(r => r.Field<double>("Category")).
          Select(g => 
          {
              DataTable dt = table.Clone();

              foreach (DataRow r in g)
              {
                  dt.ImportRow(r);
              }

              return dt;
          }).ToList();