2009-04-06 17 views
62

Estoy buscando una forma rápida de crear una lista de valores en C#. En Java uso frecuentemente el siguiente fragmento:¿Forma rápida de crear una lista de valores en C#?

List<String> l = Arrays.asList("test1","test2","test3"); 

¿Hay algún equivalente en C# aparte del obvio a continuación?

IList<string> l = new List<string>(new string[] {"test1","test2","test3"}); 

Respuesta

5
IList<string> list = new List<string> {"test1", "test2", "test3"} 
8

En C# 3, que puede hacer:

IList<string> l = new List<string> { "test1", "test2", "test3" }; 

Este utiliza la sintaxis nueva colección de inicialización en C# 3.

En C# 2, me acaba de utilizar su segundo opción.

+0

nitpick: inicializador de colección, se opone inicializador. – Timwi

4

Puede simplificar esa línea de código ligeramente en C# utilizando un collection initialiser.

var lst = new List<string> {"test1","test2","test3"}; 
5

se puede soltar la parte new string[]:

List<string> values = new List<string> { "one", "two", "three" }; 
13

Si usted está mirando para reducir el desorden, considere

var lst = new List<string> { "foo", "bar" }; 

Este utiliza dos características de C# 3.0: la inferencia de tipos (el var palabra clave) y el inicializador de la colección para las listas.

Alternativamente, si se puede conformar con una matriz, esto es aún más corto (por una pequeña cantidad):

var arr = new [] { "foo", "bar" }; 
+1

Normalmente, no elegiría mis estructuras de datos en función de cuál se necesita menos caracteres para inicializar ... – Harrichael

+0

@Harrichael Correcto, y yo tampoco. Pero a menos que necesite una lista, no hay ninguna razón para usarla. –

-5

Una lista de valores de forma rápida? ¡O incluso una lista de objetos!

sólo soy un principiante en el lenguaje C#, pero me gusta usar

  • Hashtable
  • Arraylist
  • dataTable
  • Conjuntos de datos

etc.

Sólo hay demasiadas formas de almacenar artículos

1

Puede crear método de ayuda genérica, estática para crear la lista:

internal static class List 
{ 
    public static List<T> Of<T>(params T[] args) 
    { 
     return new List<T>(args); 
    } 
} 

Y a continuación, el uso es muy compacto:

List.Of("test1", "test2", "test3") 
Cuestiones relacionadas