2010-06-29 8 views
204

Wie ist es möglich, eine Liste von Strings (mit einem C# Initialisierer) zu initialisieren? Ich habe es mit dem folgenden Beispiel versucht, aber es funktioniert nicht.Wie initialisiert man eine C# -Stringliste (Liste <string>) mit vielen String-Werten

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

was ist die Sprache? – atzz

+0

C# (auf asp.net) ist die Sprache. – theklc

+4

zuerst würde ich den Code formatieren;) – Arseny

Antwort

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

ich davon, dass besorgt über einige der Details in der Liste des OP ... :)

+8

Schlaue Verwendung des IEnumerable-Parameters. Ich mag das. –

+17

Schlauer Gebrauch des Wortes List! – ewitkows

+53

Ich glaube nicht, dass es einen guten Grund gibt, ein String-Array hier zu initialisieren, um dieses Objekt zu erstellen. Wer auf der Suche ist, bitte benutzen Sie eine der anderen Antworten. –

307

Entfernen Sie einfach () am Ende.

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

@Oded: http://msdn.microsoft.com/ en-us/library/bb384062.aspx "Sammlungsinitialisierer" – Lucero

+0

Beziehen Sie sich auf eine bestimmte Version von .NET/C#? Soweit ich weiß arbeiten diese ab v3.5. Ich weiß nichts über 2.0, weil ich es für eine Weile nicht benutzt habe ... – Padel

+1

asp.net 2.0 btw Ich bekomme den Fehler nach {-> Fehler Ein neuer Ausdruck erfordert() oder [] nach dem Typ – theklc

84

Sie haben gefragt, nicht wirklich eine Frage, aber der Code sollte

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

das heißt kein Hinter() nach der Liste sein.

+0

Fehler Ein neuer Ausdruck erfordert() oder [] nach dem Typ – theklc

+2

@blgnklc, weil Sie C# 2 verwenden, das diese Funktion nicht unterstützt. –

+3

Dies sollte jetzt die akzeptierte Antwort sein. –

9

Ihre Funktion ist nur gut, aber funktioniert nicht, weil Sie die () nach dem letzten stellen zu unterlassen } . Wenn Sie den () nach oben neben new List<string>() verschieben, wird der Fehler beendet.

Probe unter:

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

Dies ist, wie Sie es tun würde.

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

Nicht

using System.Collections.Generic;

2

Dies ist hinzuzufügen Vergessen Sie, wie Sie initialisieren und auch können Sie List.Add() verwenden, falls Sie wollen um es dynamischer zu machen.

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

Auf diese Weise, wenn Sie Werte in von IO nehmen, können Sie es zu einer dynamisch zugewiesenen Liste hinzufügen.

Verwandte Themen