2015-05-11 2 views
2

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

например: Список A = «а» " абы»„а“„ба“„БАК“„BDB“„CBA“„ZBA“

мне нужно список B, чтобы быть все б (3-5)

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

+1

Поисковые ключи: '' .FindAll' и .CopyTo' – Muhammad

ответ

6

Использование List.GetRange()

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 

Результаты:

enter image description here

+0

.GetRange (начало, конец-начало) работало для меня – Dman

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