2015-08-18 5 views
1

У меня есть списокКак выбрать несколько элементов, сгруппированных по индексу из списка?

Dim list1 As List(Of Byte) = New List(Of Byte)() From {1, 2, 3, 4, 5, 6, 7, 8, 9} 

я хочу выбрать три элемента из list1 в порядке указателя list2.

List2 = {"123" , "456", "789"} 

Как я могу выбрать их для следующего цикла?

Спасибо.

ответ

1

Вот запрос LINQ для вас без видимых петель по желанию:

Dim itemGroups As List(Of String) = list1. 
    Select(Function(b, i) New With {.Byte = b, .Index = i}). 
    GroupBy(Function(x) x.Index \ 3). 
    Select(Function(g) String.Concat(g.Select(Function(x) x.Byte))). 
    ToList() 

x.Index \ 3 используется для создания группы из трех, это integer division operator, что отбрасывает любой остаток и сохраняет только целую часть. (Для пользователей C#: это то же самое, что и для /)

+0

спасибо, что сделал .. работал .. –

Смежные вопросы