Сгруппируйте DataTable по столбцу и преобразуйте в Список <DataTable> - PullRequest
0 голосов
/ 11 марта 2019

У меня есть DataTable, который выглядит следующим образом:

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

Я хочу сгруппировать по столбцу Категория и преобразовать каждую подобную группу в DataTable и поместить ее в Список . Поэтому мне нужно иметь 3 DataTable, как показано ниже:

DataTable 1

Category | Amount
Food     | 10
Food     | 40

DataTable 2

Category | Amount
Drink    | 20
Drink    | 30

DataTable 3

Category | Amount
Clothes  | 50
Clothes  | 5

Какой-нибудь совет, как этого достичь? Я могу только найти вопросы, которые хотят иметь вывод 1 DataTable.

1 Ответ

3 голосов
/ 11 марта 2019

Вы можете использовать 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...