分组是指将数据放入组的作,以便每个组中的元素共享一个通用属性。
下图显示了对字符序列进行分组的结果。 每个组的键是字符。
以下部分列出了对数据元素进行分组的标准查询运算符方法。
方法
方法名 | DESCRIPTION | Visual Basic 查询表达式语法 | 详细信息 |
---|---|---|---|
按组分组 | 对共享公共属性的元素进行分组。 每个组由一个 IGrouping<TKey,TElement> 对象表示。 | Group … By … Into … |
Enumerable.GroupBy Queryable.GroupBy |
ToLookup | 将元素插入基于键选择器函数的 Lookup<TKey,TElement>(一种一对多字典)。 | 不適用。 | Enumerable.ToLookup |
查询表达式语法示例
下面的代码示例根据 Group By
子句是偶数还是奇数对列表中的整数进行分组。
Dim numbers As New System.Collections.Generic.List(Of Integer)(
New Integer() {35, 44, 200, 84, 3987, 4, 199, 329, 446, 208})
Dim query = From number In numbers
Group By Remainder = (number Mod 2) Into Group
Dim sb As New System.Text.StringBuilder()
For Each group In query
sb.AppendLine(If(group.Remainder = 0, vbCrLf & "Even numbers:", vbCrLf & "Odd numbers:"))
For Each num In group.Group
sb.AppendLine(num)
Next
Next
' Display the results.
MsgBox(sb.ToString())
' This code produces the following output:
' Odd numbers:
' 35
' 3987
' 199
' 329
' Even numbers:
' 44
' 200
' 84
' 4
' 446
' 208
另请参阅
- System.Linq
- 标准查询运算符概述 (Visual Basic)
- Group By 子句
- 如何:按扩展对文件进行分组 (LINQ) (Visual Basic)
- 如何:通过组将文件分成多个文件(LINQ)(Visual Basic)