/ / Existuje ekvivalent String.Split, ktorý vráti všeobecný zoznam? - vb.net, generiká

Existuje ekvivalent String.Split, ktorý vráti všeobecný zoznam? - vb.net, generiká

Rád by som urobil niečo takéto:

Dim Foo as String = "a,b,c,d,e"
Dim Boo as List(of String) = Foo.Split(","c)

Samozrejme Foo.Split vráti jednorozmerné pole String, nie je generický List, Existuje spôsob, ako to urobiť bez toho, aby som prešiel cez pole, aby sa z neho stala druhová List?

odpovede:

32 pre odpoveď č. 1

Ak nechcete používať LINQ, môžete to urobiť:

Dim foo As String = "a,b,c,d,e"
Dim boo As New List(Of String)(foo.Split(","c))

7 pre odpoveď č. 2

Môžete použiť konštruktor zoznamu.

String foo = "a,b,c,d,e";
List<String> boo = new List<String>(foo.Split(","));

6 pre odpoveď č. 3

Naozaj potrebujete zoznam <T> alebo bude to urobiť <T>? Pretože reťazec [] už implementuje tento ... len ďalší dôvod, prečo to stojí za programovanie na rozhrania, kde môžete. (Mohlo by to byť, že v tomto prípade skutočne nemôžete, samozrejme.)


4 pre odpoveď č. 4

Najjednoduchšou metódou by pravdepodobne bola metóda AddRange.

Dim Foo as String = "a,b,c,d,e"
Dim Boo as List(of String)

Boo.AddRange(Foo.Split(","c))

0 pre odpoveď č. 5

Ak používate Linq, môžete použiť metódu rozšírenia ToList ()

Dim strings As List<string> = string_variable.Split().ToList<string>();

0 pre odpoveď č. 6

Tu je to, ako to robím ... pretože rozdelenie hľadá pole char I klip z prvej hodnoty v mojom reťazci.

var values = labels.Split(" "[0]).ToList<string>();

0 pre odpoveď č. 7

Aby som nadviazal na odpoveď, našiel som nasledujúce veľmi užitočné:

Return New List(Of String)(IO.File.ReadAllLines(sFileName))