2016-05-31 13 views
0

VBの特定の位置から開始してリストの要素を合計する方法はありますか?特定の位置から始まる合計要素リストVB

たとえば、10倍の{1,2,3,4,5,6,7,8,9,10}のリストがあり、最初の5つのものだけを合計したい場合、または合計する場合のみ最後の5つのもの。

私は、.Sum()関数を認識していますが、開始点と終了点を変更する方法がわかりませんでした。

+0

たとえば 'for'のようなループを使用しますか? –

+1

「テイク」機能を使用しますか? .Take(5)は最初の5つ(またはソートに応じて最後の5つ)を与えるべきです – JaggenSWE

答えて

0

これは、あなたが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 
+1

パラメータから 'startingpoint'の値を与えることができるときに' i'を0に初期化するのはなぜですか? –

3

を探して正確に何をすべき、あなたはしている要素の数を制限するために、最初のいくつかのリスト要素とTake方法をスキップするSkipを使用することができます処理される。

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 
関連する問題