聚合运算 (Visual Basic)
聚合运算从值的集合中计算出单个值。 例如,从一个月累计的每日温度值计算出日平均温度值就是一个聚合运算。
下图显示对数字序列进行两种不同聚合操作所得结果。 第一个操作累加数字。 第二个操作返回序列中的最大值。
下节列出了执行聚合运算的标准查询运算符方法。
方法
方法名 | 描述 | Visual Basic 查询表达式语法 | 详细信息 |
---|---|---|---|
聚合 | 对集合的值执行自定义聚合运算。 | 不适用。 | Enumerable.Aggregate Queryable.Aggregate |
平均值 | 计算值集合的平均值。 | Aggregate … In … Into Average() |
Enumerable.Average Queryable.Average |
计数 | 对集合中元素计数,可选择仅对满足谓词函数的元素计数。 | Aggregate … In … Into Count() |
Enumerable.Count Queryable.Count |
LongCount | 对大型集合中元素计数,可选择仅对满足谓词函数的元素计数。 | Aggregate … In … Into LongCount() |
Enumerable.LongCount Queryable.LongCount |
Max 或 MaxBy | 确定集合中的最大值。 | Aggregate … In … Into Max() |
Enumerable.Max Enumerable.MaxBy Queryable.Max Queryable.MaxBy |
Min 或 MinBy | 确定集合中的最小值。 | Aggregate … In … Into Min() |
Enumerable.Min Enumerable.MinBy Queryable.Min Queryable.MinBy |
Sum | 对集合中的值求和。 | Aggregate … In … Into Sum() |
Enumerable.Sum Queryable.Sum |
查询表达式语法示例
平均值
下面的代码示例使用 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
计数
下面的代码示例使用 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
下面的代码示例使用 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
下面的代码示例使用 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
下面的代码示例使用 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
下面的代码示例使用 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