2010-06-29 31 views
204

¿Cómo es posible inicializar (con un inicializador C#) una lista de cadenas? Lo he intentado con el ejemplo a continuación, pero no está funcionando.Cómo inicializar una lista de cadenas C# (Lista <string>) con muchos valores de cadena

List<string> optionList = new List<string> 
{ 
    "AdditionalCardPersonAdressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay" 
}(); 
+0

¿cuál es el idioma? – atzz

+0

C# (en asp.net) es lang. – theklc

+4

primero formatearé el código;) – Arseny

Respuesta

316
List<string> mylist = new List<string>(new string[] { "element1", "element2", "element3" }); 

Me abstendré de estar preocupado por algunos de los detalles en la lista de la OP ... :)

+8

Uso astuto del parámetro IEnumerable. Me gusta. –

+17

¡Uso astuto de la palabra astucia! – ewitkows

+53

No creo que haya una buena razón para inicializar una matriz de cadenas aquí para crear este objeto. Cualquiera que esté buscando, use una de las otras respuestas. –

307

Acaba de eliminar () al final.

List<string> optionList = new List<string> 
      { "AdditionalCardPersonAdressType", /* rest of elements */ }; 
+2

@Oded: http://msdn.microsoft.com/ es-us/library/bb384062.aspx "Iniciales de la colección" – Lucero

+0

¿Se refiere a una versión específica de .NET/C#? Por lo que sé este trabajo de v3.5 y posterior. No sé acerca de 2.0 porque no lo he usado por un tiempo ... – Padel

+1

asp.net 2.0 btw Recibo el error después de {-> Error Una nueva expresión requiere() o [] después del tipo – theklc

84

En realidad, no han hecho una pregunta, pero el código debe ser

List<string> optionList = new List<string> { "string1", "string2", ..., "stringN"}; 

es decir, sin final() después de la lista.

+0

Error Una nueva expresión requiere() o [] después del tipo – theklc

+2

@blgnklc, porque está utilizando C# 2 que no admite esta característica. –

+3

Esta debería ser la respuesta aceptada ahora. –

9

Su función es muy bien, pero no está funcionando, ya que poner el () después de la última } . Si mueve el () a la parte superior justo al lado de new List<string>(), el error se detiene.

de ejemplo siguiente:

List<string> optionList = new List<string>() 
{ 
    "AdditionalCardPersonAdressType","AutomaticRaiseCreditLimit","CardDeliveryTimeWeekDay" 
}; 
-3

Ésta es la forma en que lo haría.

List <string> list1 = new List <string>();

no se olvide de añadir

using System.Collections.Generic;

2

Esta es la forma de inicializar y también se puede utilizar List.Add() en caso de que quiera para hacerlo más dinámico.

List<string> optionList = new List<string> {"AdditionalCardPersonAdressType"}; 
optionList.Add("AutomaticRaiseCreditLimit"); 
optionList.Add("CardDeliveryTimeWeekDay"); 

De esta forma, si toma valores de IO, puede agregarlos a una lista asignada dinámicamente.

Cuestiones relacionadas