2015-12-05 135 views
0

的指数我有保留的项目列表/阵列如何分割列表/阵列基于阵列

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

enter image description here

现在根据一些条件来我已经拥有的指数另一个数组值。

enter image description here

我需要拆分

reservationItemsarr

我需要建立一个新的列表/数组,将举行以我的索引阵列上的值。

所以最终结果应该是像

列表(0)= reservationItemsarr(0)和reservationItemsarr(1)

列表(1)= reservationItemsarr(2)和reservationItemsarr(3)和 reservationItemsarr(4)

列表(2)= reservationItemsarr(5)和reservationItemsarr(6)和 reservationItemsarr(7)

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

+3

你试图得到你需要的东西并不太清楚。我希望你明确期待有人为你提供全面解决方案,因为这不是SO的工作原理。 – varocarbas

+0

其实我不是在寻找解决方案,我正在寻找一些像@PHeiberg解释过的,采取和跳过会做...让我试试。 – fizmhd

回答

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) 

您需要照顾的边缘情况下,如指数在最后一个元素或阵列之外指向。

+0

感谢您的帮助,我可以解决这个问题。 – fizmhd