Speicherplatz für Liste anlegen
-
Hallo,
ich möchte schon im vorhinein Speicherplatz für meine List anlegen.
Eigentlich dachte ich ja das geht so .
List<int> lst_zahl = new List<int>(5); lst_zahl.Capacity = 5; // oder so lst_zahl[1] = 4; // hier kommt ein Fehler :(
jedenfall geht das so nicht
-
das ist nicht sein ernst oder?
-
mein voller ernst !!! Weisst du wie es geht ?
ich will hier nicht 5 mal künstlich Add machen um mir Speicher anzulegen. sorry.
-
Die Kapazität ist die Größe des internen Puffers. Wenn du abschätzen kannst, wie viele Elemente du hinzufügen wirst, kannst du damit die Effizienz deines Codes erhöhen.
Ansonsten fügst du Elemente mit Add der Liste hinzu, nicht durch zugriff auf einen nicht existenten Index.
var zahlen = new List<int>(); zahlen.Add(4)
Wenn du die Liste einfach mit bestimmten Werten belegen willst kannst du so vorgehen:
var zahlen = new List<int>{1, 2, 3, 4};
Vielleicht suchst du aber auch Arrays?
var zahlen = new int[4]; zahlen[0] = 4;
-
Hm dann geht das also gar nicht
Ich brauche eine Liste weil die Funktion eben eine Liste zurückliefert. So ist das nun mal. Und wenn ich den Operator[] auf die Liste anwende dann wäre es schön wenn der speicher schon da wäre. So muss ich erst in ein array speichern und dann nochmal in die Liste umschaufeln.
-
was ist deiner meinung nach eine liste?
-
Ja aber trotzalledem wäre es praktisch schon mal 5 Elemente in die Liste einfügen zu können.
-
blurry333 schrieb:
Ja aber trotzalledem wäre es praktisch schon mal 5 Elemente in die Liste einfügen zu können.
var liste = Enumerable.Repeat(0, 5).ToList(); //... liste[4] = 42
-
danke
Es geht also doch