聚合操作
更新:2007 年 11 月
聚合运算从值集合计算单个值。从一个月的日温度值计算日平均温度就是聚合运算的一个示例。
下图显示了对一个数字序列执行两个不同聚合运算的结果。第一个运算对这些数字执行求和。第二个运算返回该序列中的最大值。
以下部分列出了执行聚合运算的标准查询运算符方法。
方法
方法名 |
说明 |
C# 查询表达式语法 |
Visual Basic 查询表达式语法 |
更多信息 |
---|---|---|---|---|
Aggregate |
对集合值执行自定义聚合运算。 |
不适用。 |
不适用。 |
|
Average |
计算值集合的平均值。 |
不适用。 |
Aggregate … In … Into Average() |
|
Count |
对集合中的元素进行计数,还可以仅对满足某一谓词函数的元素进行计数。 |
不适用。 |
Aggregate … In … Into Count() |
|
LongCount |
对大型集合中的元素进行计数,还可以仅对满足某一谓词函数的元素进行计数。 |
不适用。 |
Aggregate … In … Into LongCount() |
|
Max |
确定集合中的最大值。 |
不适用。 |
Aggregate … In … Into Max() |
|
Min |
确定集合中的最小值。 |
不适用。 |
Aggregate … In … Into Min() |
|
Sum |
计算集合中值的总和。 |
不适用。 |
Aggregate … In … Into Sum() |
查询表达式语法示例
Average
下面的代码示例使用 Visual Basic 中的 Aggregate Into Average 子句计算表示温度的数字数组中的平均温度。
Dim temperatures() As Double = {72.0, 81.5, 69.3, 88.6, 80.0, 68.5}
Dim avg = Aggregate temp In temperatures Into Average()
' Display the result.
MsgBox(avg)
' This code produces the following output:
' 76.65
Count
下面的代码示例使用 Visual Basic 中的 Aggregate Into Count 子句计算数组中大于或等于 80 的值的个数。
Dim temperatures() As Double = {72.0, 81.5, 69.3, 88.6, 80.0, 68.5}
Dim highTemps As Integer = Aggregate temp In temperatures Into Count(temp >= 80)
' Display the result.
MsgBox(highTemps)
' This code produces the following output:
' 3
LongCount
下面的代码示例使用 Visual Basic 中的 Aggregate Into LongCount 子句计算数组中值的个数。
Dim temperatures() As Double = {72.0, 81.5, 69.3, 88.6, 80.0, 68.5}
Dim numTemps As Long = Aggregate temp In temperatures Into LongCount()
' Display the result.
MsgBox(numTemps)
' This code produces the following output:
' 6
Max
下面的代码示例使用 Visual Basic 中的 Aggregate Into Max 子句计算表示温度的数字数组中的最高温度。
Dim temperatures() As Double = {72.0, 81.5, 69.3, 88.6, 80.0, 68.5}
Dim maxTemp = Aggregate temp In temperatures Into Max()
' Display the result.
MsgBox(maxTemp)
' This code produces the following output:
' 88.6
Min
下面的代码示例使用 Visual Basic 中的 Aggregate Into Min 子句计算表示温度的数字数组中的最低温度。
Dim temperatures() As Double = {72.0, 81.5, 69.3, 88.6, 80.0, 68.5}
Dim minTemp = Aggregate temp In temperatures Into Min()
' Display the result.
MsgBox(minTemp)
' This code produces the following output:
' 68.5
Sum
下面的代码示例使用 Visual Basic 中的 Aggregate Into Sum 子句从表示费用的值数组中计算费用总额。
Dim expenses() As Double = {560.0, 300.0, 1080.5, 29.95, 64.75, 200.0}
Dim totalExpense = Aggregate expense In expenses Into Sum()
' Display the result.
MsgBox(totalExpense)
' This code produces the following output:
' 2235.2
有关如何执行聚合运算的更多信息
Topic | Location |
---|---|
如何:查询目录树中的一个或多个最大的文件 (LINQ) | 语言集成查询 (LINQ) |
如何:在 CSV 文本文件中计算列值 (LINQ) | 语言集成查询 (LINQ) |
如何:查询一组文件夹中的总字节数 (LINQ) | 语言集成查询 (LINQ) |
如何:使用 LINQ 查找查询结果中的最小值或最大值 (Visual Basic) | Visual Basic 语言参考 |
如何:使用 LINQ 对数据进行计数、求和与求平均值计算 (Visual Basic) | Visual Basic 语言参考 |
如何:查询目录树中的一个或多个最大的文件 (LINQ) | dv_Linq |
如何:在 CSV 文本文件中计算列值 (LINQ) | dv_Linq |
如何:查询一组文件夹中的总字节数 (LINQ) | dv_Linq |
如何:使用 LINQ 查找查询结果中的最小值或最大值 (Visual Basic) | dv_vbalr |
如何:使用 LINQ 对数据进行计数、求和与求平均值计算 (Visual Basic) | dv_vbalr |
如何:查询目录树中的一个或多个最大的文件 (LINQ) | dv_Linq |
如何:在 CSV 文本文件中计算列值 (LINQ) | dv_Linq |
如何:查询一组文件夹中的总字节数 (LINQ) | dv_Linq |
如何:使用 LINQ 查找查询结果中的最小值或最大值 (Visual Basic) | dv_vbalr |
如何:使用 LINQ 对数据进行计数、求和与求平均值计算 (Visual Basic) | dv_vbalr |