Hallo,
ich habe in meiner Anwendung ein string Array verwendet und zwar in dieser Art:
string[] array = new string[50];
Jetzt möchte ich dieses durch eine List<string> ersetzen, allerdings ohne jetzt nen Haufen Code ändern zu müssen. Also dachte ich, ich mach das so:
List<string> array = new List<string>();
Bisher greife ich auch das Array zu, indem ich sage:
array[index] = "fdfksdjflkf";
Verwende ich jetzt die List<string>, kompiliert er zwar, aber ich bekomme eine OutOfRangeException, wenn ich zuweisen (array[index] = "fdfksdjflkf"; ) will. Mir ist klar, dass man das mit add macht, aber geht es nicht irgendwie, ohne jetzt sämtliche Zuweisungen abändern zu müssen?
Danke 🙂
Du könntest die Größe der Liste bereits vorinitialisieren.
Lits<string> array = new List<string>(50);
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!
YARRRRRR!
Hallo,
hatte ich auch schon, Count ist danach immer 0. Hab ich einen Denkfehler? Kann ich denn überhaupt mittels [index] auf die List zugreifen?
Grüße
hmm, Count = 0 ist ok, aber Capacity sollte auf 50 sein. Wenn es so nicht geht, wirst du um den call von Add nicht rumkommen.
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!
YARRRRRR!
Hallo math55,
List<string> array = new List<string>(new string[50];);
herbivore
Hallo math55,
das kann dir die :rtfm: Doku erklären. Insgesamt bitte nicht nach Grundlagen frage. Siehe [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
herbivore
Hallo, alles klar. Eine Frage noch:
Ich wollte damit eigentlich eine kleine Performanceverbesserung erreichen, aber das macht wirklich keinen Unterschied, ob ich ein Array nehme oder die besagte List<string>. Welche Collection könnte ich denn nehmen oder wäre es in jedem Fall egal?
Danke 🙂
Hallo math55,
wenn du mit Array kein Problem hast, nimm Array. Die Performance von List<T> müsste etwas schlechter sein als die von Array.
herbivore
Eine Sache habe ich noch. Könnte es nach der Umstellung von string[] array auf List<string> Probleme mit der Sortierung geben?
Danke 🙂
Hallo math55,
eigentlich nicht. Beide nutzen Quicksort als Sortieralgorithmus.
herbivore
Hallo, danke für die frühe Antwort. Ich meinte eher, wenn ich die Elemente reinpacke mittels list[index] = "dsdsdd", kommen diese dann auch wieder an dieser Stelle raus?
Danke
Hallo math55,
warum sollte das anders sein?
So oder so: Warum probierst du es nicht aus. Denn da sind wir schon wieder bei [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
herbivore
Array oder List<> sortieren nicht automatisch. Änderst du dein Array/List<> muss du erneut sortieren. Und ja, änderst du das 5 Element (Array, List<>) bleibt diese Änderung auch für den selben Index (in dem Fall 5) bestehen.
Edit:
Mist zu langsam 😉
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...