有沒有一種方法來總結列表的元素,但從VB中的特定位置開始?從特定位置開始的總和元素列表VB
例如,如果我有10個雙打的列表{1,2,3,4,5,6,7,8,9,10},並且我只想總和前5個,或者只求和最後5個。
我知道.Sum()函數,但我沒有弄清楚如何改變開始/結束點。
有沒有一種方法來總結列表的元素,但從VB中的特定位置開始?從特定位置開始的總和元素列表VB
例如,如果我有10個雙打的列表{1,2,3,4,5,6,7,8,9,10},並且我只想總和前5個,或者只求和最後5個。
我知道.Sum()函數,但我沒有弄清楚如何改變開始/結束點。
這應該做的正是你尋找的
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
爲什麼初始化'i'爲0時,你可以從參數中給它起始點的值? –
使用Sum
方法之前,你可以使用Skip
跳過前幾個列表元素和Take
方法來限制對元素的數量被處理。
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
使用循環,例如'for'? –
使用「Take」功能? .Take(5)應該給你前五個(或最後五個取決於排序) – JaggenSWE