135 Stimmen

Wie kann ich eine C#-Liste in derselben Zeile initialisieren, in der ich sie deklariere? (Beispiel für eine IEnumerable-String-Sammlung)

Ich schreibe meinen Testcode und möchte nicht schreiben:

List nameslist = new List();
nameslist.Add("one");
nameslist.Add("two");
nameslist.Add("three");

Ich würde gerne schreiben

List nameslist = new List({"one", "two", "three"});

Jedoch ist {"one", "two", "three"} keine "IEnumerable Collection". Wie kann ich das in einer Zeile initialisieren, indem ich die "IEnumerable Collection" verwende?

208voto

Matthew Abbott Punkte 58885
var list = new List { "One", "Two", "Three" };

Grundsätzlich lautet die Syntax:

new List { Instanz1, Instanz2, Instanz3 };

Was vom Compiler übersetzt wird als

List list = new List();
list.Add("One");
list.Add("Two");
list.Add("Three");

20voto

Adriaan Stander Punkte 155899

Ändern Sie den Code zu

List nameslist = new List {"one", "two", "three"};

oder

List nameslist = new List(new[] {"one", "two", "three"});

7voto

Richard Fawcett Punkte 2789

Nur die Klammern verlieren:

var namensliste = new List { "eins", "zwei", "drei" };

7voto

MDT Punkte 1312

Diesen Beitrag poste ich für Leute, die eine Liste mit POCOs initialisieren möchten und auch, weil dies das Erste ist, was bei der Suche auftaucht, aber alle Antworten beziehen sich nur auf Listen vom Typ String.

Dies kann auf zwei Arten erfolgen, entweder direkt durch Zuweisung über den Setter oder viel sauberer, indem ein Konstruktor erstellt wird, der Parameter entgegennimmt und die Eigenschaften setzt.

class MObject {        
        public int Code { get; set; }
        public string Org { get; set; }
    }

List theList = new List { new MObject{ PASCode = 111, Org="Oracle" }, new MObject{ PASCode = 444, Org="MS"} };

ODER mit parameterisiertem Konstruktor

class MObject {
        public MObject(int code, string org)
        {
            Code = code;
            Org = org;
        }

        public int Code { get; set; }
        public string Org { get; set; }
    }

List theList = new List {new MObject( 111, "Oracle" ), new MObject(222,"SAP")};

4voto

Dies ist ein Weg.

List list = new List{ 1, 2, 3, 4, 5 };

Dies ist ein anderer Weg.

List list2 = new List();

list2.Add(1);

list2.Add(2);

Gleiches gilt für Zeichenketten.

Zum Beispiel:

List list3 = new List { "Hallo", "Welt" };

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X