Dim arrLst As New ArrayList
Dim dblVal as Double
此arrLst
个由n个值组成的Double
}
目前我使用以下代码来计算总和
arrLst
For i = 0 To arrLst .Count - 1
If dblVal = 0.0 Then
dblVal = arrLst .Item(i)
Else
dblVal = dblVal + arrLst.Item(i)
End If
Next
由于arrList.Sum()
中VB.NET
不可用,是否有其他方法可以执行相同的工作?
答案 0 :(得分:8)
嗯,首先,ArrayList
不是存储相同类型值的不错选择。您应该使用List(Of Double)
,然后在访问时不必将每个值强制转换为双倍。
无论如何,只需在开始之前将总和设置为零,就可以使代码更简单:
dblVal = 0.0
For i = 0 To arrLst.Count - 1
dblVal = dblVal + arrLst.Item(i)
Next
(我知道在声明变量时默认情况下该变量为零,因此您实际上可以跳过将其设置为零,但实际设置代码所依赖的值会很好。)
使用For each
和+=
运算符可以更简单:
dblVal = 0.0
For Each n In arrLst
dblVal += n
Next
您还可以使用方法Sum
添加所有值,但在使用ArrayList
时,您必须先将其设为双打的集合:
dblVal = arrLst.Cast(of Double).Sum()
答案 1 :(得分:1)
试试这个:
dblVal = 0
arrLst.OfType(Of Double)().ToList(Of Double)().ForEach(Function(dbl) dblVal += dbl)
答案 2 :(得分:0)
试试这个。
double doubleSum = doubleList.stream().mapToDouble(Double::doubleValue).sum();