Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 从特定位置VB开始的元素列表总和_Vb.net - Fatal编程技术网

Vb.net 从特定位置VB开始的元素列表总和

Vb.net 从特定位置VB开始的元素列表总和,vb.net,Vb.net,有没有一种方法可以对列表中的元素求和,但要从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 Dou

有没有一种方法可以对列表中的元素求和,但要从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

这正是你想要的

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

在使用
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

在使用
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)应给出前五个(或最后五个,取决于排序)使用循环,例如
for
?使用“Take”功能。Take(5)应该给出前五个(或最后五个,取决于排序)为什么在可以从参数中给它
startingpoint
的值时将
i
初始化为0?在可以从参数中给它
startingpoint
的值时,为什么将
i
初始化为0?