如何根据数组

时间:2015-12-05 08:46:50

标签: arrays vb.net linq list vb.net-2010

我有一个预订项目列表/数组

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

enter image description here

现在基于某些条件,我创建了另一个具有值索引的数组。

enter image description here

我需要拆分

  

reservationItemsarr

我需要创建一个新的列表/数组,它将根据我的索引数组保存值。

所以最后的结果应该是

  

list(0)= reservationItemsarr(0)和reservationItemsarr(1)

     

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

     

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

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

1 个答案:

答案 0 :(得分:1)

帮助您入门的基本算法:

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)

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