c# datatable 分组foreach
时间: 2023-08-30 19:05:31 浏览: 134
可以使用 LINQ to DataSet 来对 DataTable 进行分组操作,然后再使用 foreach 循环遍历分组后的结果。以下是示例代码:
```csharp
using System;
using System.Data;
using System.Linq;
class Program
{
static void Main()
{
// 定义一个 DataTable
DataTable dt = new DataTable();
dt.Columns.Add("Category", typeof(string));
dt.Columns.Add("Product", typeof(string));
// 添加数据
dt.Rows.Add("Fruit", "Apple");
dt.Rows.Add("Fruit", "Banana");
dt.Rows.Add("Vegetable", "Carrot");
dt.Rows.Add("Vegetable", "Broccoli");
// 使用 LINQ 进行分组
var groups = from row in dt.AsEnumerable()
group row by row.Field<string>("Category") into g
select new { Category = g.Key, Products = g };
// 遍历分组后的结果
foreach (var g in groups)
{
Console.WriteLine(g.Category + ":");
foreach (var row in g.Products)
{
Console.WriteLine(" " + row.Field<string>("Product"));
}
}
}
}
```
上述代码中,使用 LINQ 的 `group by` 子句将 DataTable 按照 Category 列进行分组,然后使用匿名类型来保存每个分组的分类和对应的行集合。最后使用嵌套的 foreach 循环遍历分组后的结果,输出每个分类和该分类下的所有产品。
阅读全文