我首先想说的是我是vb.net的初学者和一般的编码。
我试图找到数组中数字的平均值。
到目前为止,我的代码就是这个。
Function getMean() As Double
Dim DblArray(lstbxInput.Items.Count - 1) As Double
Dim totalsum As Double
Dim i As Integer
For i = 0 To dblArray.Length - 1
totalsum += DblArray(i)
Next i
dblmean = totalsum / DblArray.Length
Return dblmean
End Function
最后,我需要dblmean返回dblarray数字的平均值。 这是正确的吗? 显然它是错的,因为我试图在标签上打印它,它总是出现为零。为什么? 代码有问题吗?或者打印出这个值有什么问题吗?
此外,这是用于打印出dblmean
的代码lblLrgAns.Text = dblmean.ToString
当我点击按钮时会发生这种情况。
答案 0 :(得分:2)
一种简单的方法是使用位于System.Linq
namepsorts中的Enumerable.Average
扩展方法(所以请记住添加Import
)。
Dim mean As Double = DblArray.Average()
在您的情况下,您需要首先初始化阵列。我猜lstbxInput
中的项目已经是双打。
Dim DblArrayAs As Double() = lstbxInput.Items.Cast(Of Double)().ToArray()
答案 1 :(得分:0)
当你这样做时
Dim DblArray(lstbxInput.Items.Count - 1) As Double
所有DblArray
项都是0,但您永远不会更改代码中的任何DblArray
项,因此dblmean
也将为0.您需要指定{的每个项目在计算平均值之前{1}}。
我猜这与您之前的问题有关:putting a list into an array?,所以这里的代码应该是这样的
DblArray