' The average of an array of any numeric type
'
' Example:
' Dim arr As Integer() = {3, 7, 8, 2, 0, 9}
' MessageBox.Show(ArrayAvg(arr))
Function ArrayAvg(ByVal arr As Array) As Double
Return ArrayAvg(arr, arr.GetLowerBound(0), arr.GetUpperBound(0))
End Function
' This overloaded version allows you to specify which portion of the array
' should be considered
Function ArrayAvg(ByVal arr As Array, ByVal first As Integer, _
ByVal last As Integer) As Double
Dim i As Integer
Dim sum As Double
For i = first To last
sum += CType(arr(i), Double)
Next
' return the average
Return sum / ((last + 1) - first)
End Function