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()関数を認識していますが、開始点と終了点を変更する方法がわかりませんでした。
これは、あなたが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
パラメータから 'startingpoint'の値を与えることができるときに' i'を0に初期化するのはなぜですか? –
を探して正確に何をすべき、あなたはしている要素の数を制限するために、最初のいくつかのリスト要素と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
たとえば 'for'のようなループを使用しますか? –
「テイク」機能を使用しますか? .Take(5)は最初の5つ(またはソートに応じて最後の5つ)を与えるべきです – JaggenSWE