从特定位置VB开始的Sum元素列表

时间:2016-05-31 12:47:10

标签: vb.net

有没有办法对列表的元素求和,但是从VB的特定位置开始?

例如,如果我有10个双打{1,2,3,4,5,6,7,8,9,10}的列表,我想只将前5个加起来,或仅加总最后5个。

我知道.Sum()函数,但我没有弄清楚如何更改起点/终点。

2 个答案:

答案 0 :(得分:3)

在使用Sum方法之前,您可以使用Skip跳过前几个列表元素和Take方法来限制要处理的元素数量。< / p>

Dim myList As New List(Of Double) From {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Dim first5, last5, thirdToSeventh As Double

first5 = myList.Take(5).Sum
last5 = myList.Skip(5).Sum
thirdToSeventh = myList.Skip(2).Take(5).Sum

答案 1 :(得分:0)

这应该完全符合您的要求

Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim l As Double() = New Double() {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
    'first 5
    MsgBox(sumit(l, 0, 5))
    MsgBox("done")
    '  last 5
    MsgBox(sumit(l, l.Length - 5, 5))
End Sub

 Function sumit(ByVal doublearray As Double(), ByVal startingpoint As Integer, ByVal endingpoint As Integer)
    Return Enumerable.Range(startingpoint, ((endingpoint))).Select(Function(i) doublearray(i)).Sum
End Function
End Class