Hoe initialiseren een lijst met strings (lijst & lt; string & gt;) met veel stringwaarden

Hoe is het mogelijk om te initialiseren (met een C # Initializer) een lijst met snaren? Ik heb geprobeerd met het onderstaande voorbeeld, maar het werkt niet.

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

Antwoord 1, Autoriteit 100%

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

Antwoord 2, Autoriteit 122%

Verwijder gewoon ()aan het einde.

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

Antwoord 3, Autoriteit 31%

U hebt geen vraag gesteld, maar de code moet

zijn

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

d.w.z. Geen trailing () na de lijst.


Antwoord 4, Autoriteit 7%

var animals = new List<string> { "bird", "dog" };
List<string> animals= new List<string> { "bird", "dog" };

boven twee zijn de kortste manieren, zie https://www.dotnetperls.com/list


Antwoord 5, Autoriteit 3%

Uw functie is prima, maar werkt niet omdat u de ()na de laatste }plaatst. Als u de ()naar de top gaat, net naast new List<string>()De fouthaltes.

Monster hieronder:

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

Antwoord 6

Dit is hoe u initialiseert en ook kunt u LIST.ADDD () gebruiken voor het geval u het dynamischer wilt maken.

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

Op deze manier, als u waarden in gebruik bent van IO, kunt u deze toevoegen aan een dynamisch toegewezen lijst.


Antwoord 7

Beweeg ronde beugels zoals deze:

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

Antwoord 8

Er is iets anders dat u misschien mist die niet is genoemd. Ik denk dat het misschien het probleem is dat je hebt terwijl ik vermoed dat je al probeerde de trailing () te verwijderen en nog steeds een foutmelding.

Ten eerste, zoals anderen hiervan hebben vermeld, moet u de trailing ();

verwijderen

Merk ook op die lijst & LT; & GT; zit in het systeem. Collections.Generic NameSpace.

Dus moet u een van de volgende twee opties uitvoeren:
[# 1 hieronder is waarschijnlijk de optie Meer geprefereerd]

(1)
Vermeld het gebruik van de naamruimte aan de bovenkant van uw code met:
met behulp van System.Collections.Generic;

of

(2)
Zet het volledig gekwalificeerde pad naar List in uw aangifte.

System.Collections.Generic.List optList=nieuwe System.Collections.Generic.List
{ “AdditionalCardPersonAddressType”,”AutomaticRaiseCreditLimit”,”CardDeliveryTimeWeekDay”
};

Hopelijk helpt dat.

Het foutbericht dat u ontvangt wanneer u List correct implementeert, maar de System.Collections.Generic-naamruimte niet opneemt, is misleidend en niet nuttig:

“Compilerfout CS0308: De niet-generieke typelijst kan niet worden gebruikt met typeargumenten.”

PS – Het geeft deze nutteloze fout, want als je niet opgeeft dat je System.Collections.Generic.List wilt gebruiken, gaat de compiler ervan uit dat je System.Windows.Documents.List probeert te gebruiken.


Antwoord 9

Een echt coole functie is dat de initialisatie van de lijst ook prima werkt met aangepaste klassen: je hoeft alleen maar de IEnumerable-interface te implementeren en een methode met de naam Addte gebruiken.

Dus bijvoorbeeld als je een aangepaste klas hebt zoals deze:

class MyCustomCollection : System.Collections.IEnumerable
{
    List<string> _items = new List<string>();
    public void Add(string item)
    {
        _items.Add(item);
    }
    public IEnumerator GetEnumerator()
    {
        return _items.GetEnumerator();
    }
}

dit zal werken:

var myTestCollection = new MyCustomCollection()
{
    "item1",
    "item2"
}

Antwoord 10

Ik heb de inhoudstag C# gezien, maar als iemand Java zou kunnen gebruiken (dezelfde zoektermen leiden hier):

List<String> mylist = Arrays.asList(new String[] {"element1", "element2", "element3" }.clone());

Antwoord 11

De juiste manier om samen met de declaratie te initialiseren is:

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

Antwoord 12

Zo zou je het doen.

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

Other episodes