vb.net datatable group
时间: 2023-10-01 17:05:21 浏览: 167
DataTable分组
在 VB.NET 中,您可以使用 DataTable 的 Select 方法和 Compute 方法来对 DataTable 进行分组操作。下面是两种不同的方法来实现 DataTable 的分组功能:
方法一:使用 Select 方法进行分组
```vb
Dim dt As New DataTable()
' 假设 DataTable 包含 "Name" 和 "Age" 两列数据
' 使用 Select 方法按照 "Name" 列进行分组
Dim groupedData As Dictionary(Of String, List(Of DataRow)) = dt.AsEnumerable().
GroupBy(Function(row) row.Field(Of String)("Name")).
ToDictionary(Function(group) group.Key, Function(group) group.ToList())
' 遍历分组结果
For Each group In groupedData
Console.WriteLine("Group: " & group.Key)
For Each row In group.Value
Console.WriteLine(row("Name") & " - " & row("Age"))
Next
Next
```
方法二:使用 Compute 方法进行分组
```vb
Dim dt As New DataTable()
' 假设 DataTable 包含 "Name" 和 "Age" 两列数据
' 使用 Compute 方法按照 "Name" 列进行分组
Dim groupedData = dt.AsEnumerable().
GroupBy(Function(row) row.Field(Of String)("Name")).
Select(Function(group) New With {
.Name = group.Key,
.Count = group.Count(),
.MinAge = group.Min(Function(row) row.Field(Of Integer)("Age")),
.MaxAge = group.Max(Function(row) row.Field(Of Integer)("Age"))
})
' 遍历分组结果
For Each group In groupedData
Console.WriteLine("Group: " & group.Name)
Console.WriteLine("Count: " & group.Count)
Console.WriteLine("Min Age: " & group.MinAge)
Console.WriteLine("Max Age: " & group.MaxAge)
Next
```
这两种方法都可以实现对 DataTable 的分组操作,您可以根据自己的需求选择其中一种方法。希望能对您有所帮助!如有其他问题,请随时提问。
阅读全文