В качестве примера для следующей таблицы:
+----+---------+-----------+
| ID | GroupID | OtherData |
+----+---------+-----------+
| 1 | 1 | w4ij6u |
+----+---------+-----------+
| 2 | 2 | ai6465 |
+----+---------+-----------+
| 3 | 2 | ows64rg |
+----+---------+-----------+
| 4 | 2 | wqoi46suj |
+----+---------+-----------+
| 5 | 3 | w9rthzv |
+----+---------+-----------+
| 6 | 3 | 03ehsat |
+----+---------+-----------+
| 7 | 4 | w469ia |
+----+---------+-----------+
| 8 | 5 | nhwh57rt |
+----+---------+-----------+
| 9 | 5 | mwitgjhx4 |
+----+---------+-----------+
Как эффективно извлечь List<List<DataRow>>
из этой таблицы, извлеченной из столбца "GroupID"?
В общем, я хочу, чтобы результат был:
MyList(0) = List: 1 DataRow, ID(s) 1
MyList(1) = List: 3 DataRows, ID(s) 2,3,4
MyList(2) = List: 2 DataRows, ID(s) 5,6
MyList(3) = List: 1 DataRow, ID(s) 7
MyList(4) = List: 2 DataRows, ID(s) 8,9
Вот проблема, хотя: Этот DataTable содержит сотни столбцов и десятки тысяч строк, поэтому эта операция должна быть максимально эффективной.
Я уже пробовал следующие методы:
- Создание
DataView
с фильтром строк и извлечение таблицы / списка строк из этого представления. - Запрос Linq в цикле после получения уникального списка GroupID.Запрос Linq выбирает каждый «набор» GroupID на основе предложения
Where
.
Я надеюсь, что у кого-то еще есть более эффективный и эффективный способ извлечения этих данных.