2016-05-31 40 views
0

有沒有一種方法來總結列表的元素,但從VB中的特定位置開始?從特定位置開始的總和元素列表VB

例如,如果我有10個雙打的列表{1,2,3,4,5,6,7,8,9,10},並且我只想總和前5個,或者只求和最後5個。

我知道.Sum()函數,但我沒有弄清楚如何改變開始/結束點。

+0

使用循環,例如'for'? –

+1

使用「Take」功能? .Take(5)應該給你前五個(或最後五個取決於排序) – JaggenSWE

回答

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 
+1

爲什麼初始化'i'爲0時,你可以從參數中給它起始點的值? –

3

使用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 
相關問題