有没有办法对列表的元素求和,但是从VB的特定位置开始?
例如,如果我有10个双打{1,2,3,4,5,6,7,8,9,10}的列表,我想只将前5个加起来,或仅加总最后5个。
我知道.Sum()函数,但我没有弄清楚如何更改起点/终点。
答案 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