如何根据数组索引拆分 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)
您需要处理边缘情况,例如指向最后一个元素或数组外部的索引。
我有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)
您需要处理边缘情况,例如指向最后一个元素或数组外部的索引。