2008-10-14 14 views

Respuesta

31

Si no desea utilizar LINQ, que puede hacer:

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

No sabía acerca de la 'c' para hacer que una cadena sea un personaje ... Siempre he usado' nuevo Char() {","} 'en su lugar. Eso es ** mucho * más ordenado – freefaller

0

Si utiliza LINQ, puede utilizar el método de extensión ToList()

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

¿Cómo es exactamente lo que propone utilizar LINQ para consultar una cadena separada por comas? –

+1

Él no lo está preguntando. El método de extensión de ToList() Code Monkey muestra en su respuesta que es solo parte de la clase de funcionalidad conocida como "Linq" (y se usa para admitir consultas LINQ, pero puede usarlo para otras cosas) –

7

Puede utilizar el constructor de la lista.

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

Respondió @Bob King por responder en VB.NET, gracias. –

+0

¡Lo siento! ¡Sin resentimientos! –

6

lo que realmente necesita una lista < T> IList o se < T> hacer? Porque string [] ya implementa lo último ... otra razón más por la que vale la pena programar en las interfaces donde se puede. (Podría ser que en este caso realmente no se puede, en verdad.)

+0

Puedes usar IList , de hecho deberías (aunque lo olvidé en el ejemplo del código de mi respuesta) – IAmCodeMonkey

+0

Estoy de acuerdo, aunque estoy tratando de entrar en este habbit. –

4

El método más fácil sería probablemente el método AddRange.

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

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

Gracias - esto funciona tan bien como la respuesta aceptada, pero es un poco menos compacto. –

+1

¿Ese código funciona? Me parece que arrojaría una NullReferenceException. –

+0

Tienes razón. Olvidé crear la instancia de Boo. – amcoder

0

Así es como lo estoy haciendo ... puesto que la fractura está buscando una matriz de char que le puede cortar el primer valor en mi cadena.

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

basarse en la respuesta, he encontrado lo siguiente muy útiles:

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