C#实现DataTable横表数据转换成纵表显示
时间: 2024-09-26 07:07:26
浏览: 15
在C#中,DataTable是一种强类型的数据表格,主要用于存储和操作结构化的数据。将横表数据(即传统的二维表格形式,每一行代表一条记录,一列对应一个字段)转换成纵表显示,通常需要对数据进行排序、分组或者透视处理。这里我们可以使用LINQ查询和`GroupBy`方法来实现这种转换。
例如,假设我们有一个DataTable `dt`,想要按某个字段(如`Category`)进行分组并展示每个分类下的所有字段,可以这样做:
```csharp
using System.Data;
using System.Linq;
// 假设 dt 是你的 DataTable 实例
// 首先获取指定字段的唯一值列表
var categories = dt.AsEnumerable()
.Select(row => row.Field<string>("Category"))
.Distinct();
// 然后创建一个新的 DataTable 来存放结果
DataTable result = new DataTable();
result.Columns.Add("Category", typeof(string));
foreach (DataColumn column in dt.Columns)
if (!column.ColumnName.Equals("Category")) // 排除 Category 列
foreach
```