对于特殊要求,我们创建了自己的HTML表格,就像网格视图一样。它从DataTable获取数据并填充TD和TR单元
我们希望像网格视图一样实现分组功能,我们在其中指定列名称并将所有值分组。
如何直接在DataTable中执行分组,然后按原样输出行?我可以使用Linq吗?请指点示例。
答案 0 :(得分:0)
您可以尝试使用DataTable
将IEnumerable
转换为AsEnumerable
(确保添加对System.Data.DataSetExtensions的引用)。
然后使用GroupBy对数据进行分组。它将返回IEnumerable<IGrouping<TKey, TSource>>
,其中每个IGrouping<TKey, TElement>
对象包含一组对象和一个键。例如:
var groups = dt.AsEnumerable().GroupBy( r => r.Field<string>("someField") );
<强>更新强>: 您可以使用多个字段(see example)进行分组,也可以将它们嵌套(see example)