C#实现横表数据转换成纵表显示
时间: 2024-09-24 18:30:11 浏览: 73
在C#中,将横表(也称为宽表或多列布局)的数据转换成纵表(长条形或单列布局),通常是为了便于查看和分析,可以使用PivotTable或者自定义算法实现。例如,你可以利用`System.Data.DataTable`的`CreatePivotTable`方法,如果是在LINQ to SQL或Entity Framework等ORM框架下,也可以通过查询操作生成。
下面是一个简单的例子,假设你有一个包含学生信息的数据表,你想按照班级转置:
```csharp
// 假设你有如下的数据
DataTable originalData = new DataTable();
originalData.Columns.Add("StudentID", typeof(int));
originalData.Columns.Add("ClassName", typeof(string));
originalData.Columns.Add("Subject", typeof(string));
originalData.Rows.Add(1, "ClassA", "Math");
originalData.Rows.Add(2, "ClassB", "Science");
originalData.Rows.Add(3, "ClassA", "English");
// 转换为PivotTable
var pivotTable = originalData.AsEnumerable()
.ToPivotTable(dataColumn: "Subject",
rowGroupings: ["ClassName"],
valueColumn: "StudentID");
// 现在pivotTable就是一个纵表,可以根据需要进一步处理和展示
```
阅读全文