【发布时间】:2011-08-18 18:10:22
【问题描述】:
以下表为例:
+----+---------+------------+ |身份证 |组ID |其他数据 | +----+---------+------------+ | 1 | 1 | w4ij6u | +----+---------+------------+ | 2 | 2 | ai6465 | +----+---------+------------+ | 3 | 2 | ows64rg | +----+---------+------------+ | 4 | 2 | wqoi46suj | +----+---------+------------+ | 5 | 3 | w9rthzv | +----+---------+------------+ | 6 | 3 | 03hsat | +----+---------+------------+ | 7 | 4 | w469ia | +----+---------+------------+ | 8 | 5 | nhwh57rt | +----+---------+------------+ | 9 | 5 | mwitgjhx4 | +----+---------+------------+
如何有效地从该表中提取基于“GroupID”列的List<List<DataRow>>?
基本上,我希望结果是:
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,并从该视图中提取表/行列表。 - 在获得唯一的 GroupID 列表后,循环内的 Linq 查询。 Linq 查询根据
Where子句选择每个“组”组ID。
我希望其他人有更好、更有效的方法来提取这些数据。
【问题讨论】:
标签: .net datatable performance