linq 对datatable groupby后输出所有字段
时间: 2023-08-18 18:56:49 浏览: 48
如果你想要在使用LINQ对DataTable进行GroupBy操作后输出所有字段,可以修改示例代码如下:
```csharp
using System;
using System.Data;
using System.Linq;
class Program
{
static void Main(string[] args)
{
// 创建一个DataTable并添加一些数据
DataTable dt = new DataTable();
dt.Columns.Add("Category", typeof(string));
dt.Columns.Add("Product", typeof(string));
dt.Rows.Add("Electronics", "TV");
dt.Rows.Add("Electronics", "Mobile");
dt.Rows.Add("Clothing", "Shirt");
dt.Rows.Add("Clothing", "Pants");
dt.Rows.Add("Clothing", "Shoes");
// 使用LINQ进行GroupBy操作并输出所有字段
var query = from row in dt.AsEnumerable()
group row by row.Field<string>("Category") into g
select g;
// 输出结果
foreach (var group in query)
{
Console.WriteLine("Category: " + group.Key);
foreach (var row in group)
{
Console.WriteLine("Product: " + row.Field<string>("Product"));
}
Console.WriteLine();
}
}
}
```
运行以上代码,输出将会是:
```
Category: Electronics
Product: TV
Product: Mobile
Category: Clothing
Product: Shirt
Product: Pants
Product: Shoes
```
在这个示例中,我们通过LINQ的GroupBy操作将DataTable的行按照Category进行分组。在输出结果时,我们首先输出分组的Key(即Category),然后遍历每个分组内的行,并输出每个行的Product字段。这样就能够输出所有字段而不仅仅是Category和Products。