2008-10-14 11 views

Odpowiedz

31

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

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

Nie wiedziałem o tym, że 'c' nadaje ciągowi znaków ... Zawsze użyłem' nowego Char() {","} 'zamiast tego. To jest dużo * schludniej – freefaller

0

Jeśli używać LINQ, można użyć ToList() metodę rozszerzenia

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

Jak dokładnie proponujesz przy użyciu LINQ kwerendy ciąg oddzielonych przecinkami? –

+1

On nie pyta o to. Metoda rozszerzenia ToList() Code Monkey w jego odpowiedzi to tylko część klasy funkcjonalności popularnie zwanej "Linq" (i jest używana do obsługi zapytania LINQ, ale można go używać do innych rzeczy). –

7

Można użyć konstruktora listy za.

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

Dałem odpowiedź @Bob Król za odpowiedź w VB.NET - dziękuję. –

+0

Przepraszam, maty! Bez urazy! –

6

Czy naprawdę potrzebujemy listy < T> lub będzie IList < T> zrobić? Ponieważ string [] już implementuje ten drugi ... 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, przyznać).

+0

Możesz użyć IList , w rzeczywistości powinieneś (mimo że zapomniałem w przykładowym kodzie odpowiedzi) – IAmCodeMonkey

+0

Zgadzam się, chociaż próbuję dostać się do tego habbitu. –

4

Najprostszą metodą byłaby prawdopodobnie metoda AddRange.

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

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

Dzięki - działa to równie dobrze, jak zaakceptowana odpowiedź, ale jest nieco mniej zwarte. –

+1

Ten kod działa? Wydaje mi się, że spowodowałoby to wyjątek NullReferenceException. –

+0

Masz rację. Zapomniałem utworzyć instancję Boo. – amcoder

0

Oto, jak to robię ... ponieważ podział szuka tablicy kolorów, które przypięłam do pierwszej wartości w łańcuchu.

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

Aby zbudować na odpowiedź, Znalazlem następujące bardzo pomocne:

Return New List(Of String)(IO.File.ReadAllLines(sFileName)) 
Powiązane problemy