Добавить диапазон из одного списка в другой

У меня есть list(of string), и я ищу его, чтобы получить начальный и конечный диапазоны, затем мне нужно добавить этот диапазон в отдельный список

пример: список A = "a" "ab" "abc" "ba" "bac" "bdb" "cba" "zba"

Мне нужно, чтобы список B состоял из всех b (3-5)

Что я хочу сделать, так это ListB.Addrange(ListA(3-5))
Как мне это сделать??


person Dman    schedule 11.05.2015    source источник
comment
Ключи поиска: .FindAll и .CopyTo   -  person Top Systems    schedule 11.05.2015


Ответы (1)


Используйте 1_

Imports System
Imports System.Collections.Generic

Sub Main()
    '                                               0    1     2      3     4      5      6      7
    Dim ListA As New List(Of String)(New String() {"a", "ab", "abc", "ba", "bac", "bdb", "cba", "zba"})
    Dim ListB As New List(Of String)

    ListB.AddRange(ListA.GetRange(3, 3))
    For Each Str As String In ListB
        Console.WriteLine(Str)
    Next
    Console.ReadLine()
End Sub

или вы можете использовать Linq

Imports System
Imports System.Collections.Generic
Imports System.Linq

Module Module1
    Sub Main()
        '                                               0    1     2      3     4      5      6      7
        Dim ListA As New List(Of String)(New String() {"a", "ab", "abc", "ba", "bac", "bdb", "cba", "zba"})
        Dim ListB As New List(Of String)

        ListB.AddRange(ListA.Where(Function(s) s.StartsWith("b")))
        ' This does the same thing as .Where()
        ' ListB.AddRange(ListA.FindAll(Function(s) s.StartsWith("b")))
        For Each Str As String In ListB
            Console.WriteLine(Str)
        Next
        Console.ReadLine()
    End Sub
End Module

Полученные результаты:

введите здесь описание изображения

person Shar1er80    schedule 11.05.2015