/ / Czy istnieje odpowiednik String.Split, który zwraca ogólną listę? - vb.net, generics

Czy istnieje odpowiednik String.Split, który zwraca ogólną listę? - vb.net, generics

Chciałbym zrobić coś takiego:

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

Oczywiście Foo.Split zwraca jednowymiarową tablicę Stringnie generyczny List. Czy istnieje sposób, aby to zrobić bez iteracji przez tablicę, aby przekształcić ją w rodzajowy List?

Odpowiedzi:

32 dla odpowiedzi nr 1

Jeśli nie chcesz używać LINQ, możesz:

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

7 dla odpowiedzi nr 2

Możesz użyć konstruktora listy.

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

6 dla odpowiedzi nr 3

Czy naprawdę potrzebujesz listy <T> lub czy IList <T> to zrobi? Ponieważ string [] już implementuje to drugie ... kolejny powód, dla którego warto programować do interfejsów, gdzie tylko możesz. (Możliwe, że w tym przypadku naprawdę nie możesz, oczywiście.)


4 dla odpowiedzi № 4

Najprostszą metodą byłaby metoda AddRange.

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

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

0 dla odpowiedzi № 5

Jeśli używasz Linq, możesz użyć metody rozszerzenia ToList ()

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

0 dla odpowiedzi № 6

Oto, jak to robię ... odkąd podział szuka tablicy znaków, odrywam pierwszą wartość w łańcuchu.

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

0 dla odpowiedzi № 7

Aby zbudować na odpowiedzi, Ive znalazł następujące bardzo pomocne:

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