Sub AggregateEx3()
Dim fruits() As String =
{"apple", "mango", "orange", "passionfruit", "grape"}
'确定数组中的任何字符串是否长于"banana"。
Dim longestName As String =
fruits.Aggregate("banana",
Function(longest, fruit) _
IIf(fruit.Length > longest.Length, fruit, longest),
Function(fruit) fruit.ToUpper())
MsgBox("名字最长的水果是" & longestName)
End Sub
Sub AggregateEx31()
Dim fruits() As String =
{"apple", "mango", "orange", "passionfruit", "passionfruitA", "passionfruitB", "grape"}
'确定数组中长于"banana"的字符串中最长的(两个相同最长的,返回第一个)。
Dim longestName As String =
fruits.Aggregate("banana", AddressOf Agg1,
AddressOf Agg2)
MsgBox("名字最长的水果是:" & longestName)
End Sub
Function Agg1(ByVal L As String, ByVal F As String) As String
MsgBox(L & " " & F)
Return IIf(F.Length > L.Length, F, L)
End Function
Function Agg2(ByVal F As String) As String
Return F.ToUpper
End Function
Sub AggregateEx2()
Dim ints() As Integer = {4, 8, 8, 3, 9, 0, 7, 8, 2}
' Count the even numbers in the array, using a seed value of 0.
Dim numEven As Integer =
ints.Aggregate(0,
Function(total, number) _
IIf(number Mod 2 = 0, total + 1, total))
' Display the output.
MsgBox("偶数的数量是:" & numEven)
End Sub
Sub AggregateEx21()
Dim ints() As Integer = {4, 8, 8, 3, 9, 0, 7, 8, 2}
' Count the even numbers in the array, using a seed value of 0.
Dim numEven As Integer =
ints.Aggregate(0, AddressOf Agg3)
' Display the output.
MsgBox("偶数的数量是:" & numEven)
End Sub
Function Agg3(ByVal t As Integer, ByVal n As Integer) As Integer
Return IIf(n Mod 2 = 0, t + 1, t)
End Function