ArrayList中值的总和

时间:2014-05-14 09:49:58

标签: vb.net

 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不可用,是否有其他方法可以执行相同的工作?

3 个答案:

答案 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();