如何根据数组索引拆分 list/array

how to Split a list/array based on index of array

我有list/array个预订商品

Dim reservationItemsarr = ObjTIReadRS.TravelItinerary.ItineraryInfo.ReservationItems.SelectMany(Function(x) x.FlightSegment).ToArray()

现在根据某些条件,我制作了另一个具有值索引的数组。

我需要拆分

reservationItemsarr

我需要创建一个新的 list/array 来保存基于我的索引数组的值。

所以最终结果应该像

list(0) = reservationItemsarr(0) and reservationItemsarr(1)

list(1) = reservationItemsarr(2) and reservationItemsarr(3) and reservationItemsarr(4)

list(2) = reservationItemsarr(5) and reservationItemsarr(6) and reservationItemsarr(7)

我的问题不是创建一个集合的集合,而是我需要一种像上面那样拆分的方法。

入门的基本算法:

Dim results As New List(Of IEnumerable(Of ReservationItem))()
Dim remainder As IEnumerable(Of ReservationItem) = reservationItemsArr
Dim lastIndex As Integer = 0
For i As Integer = 0 To index.Length - 1
    results.Add(remainder.Take(index(i) - lastIndex))
    remainder = remainder.Skip(index(i) - lastIndex)
    lastIndex = index(i)
Next
results.Add(remainder)

您需要处理边缘情况,例如指向最后一个元素或数组外部的索引。