Feedback

C# - Array zur Laufzeit erweitern

Veröffentlicht von am 4/19/2011
(0 Bewertungen)
Eine einfache Funktion die ein bereits definiertes Array um ein Element erweitert.
string[] AddLineToStringArray(string[] Array, string Line)
{
    string[] IncreasedArray = new string[Array.Length + 1];
    for (int Pos = 0; Pos < Array.Length; Pos++)
    {
       IncreasedArray[Pos] = Array[Pos];
    }
    IncreasedArray[Array.Length] = Line;
    return IncreasedArray;
}
Abgelegt unter Array, Laufzeit, erweitern, generisch.

10 Kommentare zum Snippet

Legion schrieb am 4/19/2011:
Hallo, einfacher wäre es auf die Array.Resize-Funktion zurückzugreifen.
In deinem Fall Wäre das:
Array.Resize(ref Array, Array.Length + 1);
Array[Array.Length - 1] = Line
EffEff schrieb am 4/19/2011:
Danke, das sieht wirklich etwas eleganter aus. Mit der Array - Klasse hatte ich mich noch gar nicht beschäftigt. Danke für den Tip!
Legion schrieb am 4/19/2011:
Keine Ursache ;)
Christopher Kk schrieb am 4/21/2011:
Die Frage die sich mir da stellt:
Warum benutzt du nicht eine List<string>?
Legion schrieb am 4/21/2011:
Das hätte er tun können, aber es geht ja nunmal um ein Array welches man erweitern soll.
Christopher Kk schrieb am 4/21/2011:
Jo und nochmal stell ich die Frage:
Warum nimmt er keine List<string>?
Warum ein Array erweitern mit Funktionen die doch durch eine List bereits zur automatisch zur Verfügung gestellt werden? Sicherlich isses ne nette Übung aber ich verwende lieber Sachen wo ich mich nicht mehr um sowas kümmern muss.
EffEff schrieb am 4/22/2011:
Ich habe einen string eingelesen. Und der lässt sich durch die Split-Funktion so prima einfach in ein Array zerlegen. da ist es aus meiner Sicht mit der List ein wenig umständlicher. Und dann hab ich nach ner Möglichkeit gesucht, das Array nachträglich zu erweitern.

Die Array - Klasse habe ich noch nicht verwendet - daher habe ich mir die Funktion gebastelt.
Christopher Kk schrieb am 4/22/2011:
Wieso umständlich?
string.Split(' ').ToList(); und schon haste deine Liste.
xFight schrieb am 6/15/2011:
Wieso nimmt man nicht einfach eine Liste? Die Antwort ist ganz einfach, ein Array ist deutlich schneller als Listen. Bei modernen Computern macht dieses kaum einen Unterschied. Aber WP7 Entwickler sollten schon daran denken, dass jede Einsparung von Rechenleistung den Akku schont.
kdkunde schrieb am 6/24/2011:
Ich bezeifle, dass ein Array immer schneller ist als eine Liste. Wie im Snippet zu sehen wird für die Größenänderung das komplette Array kopiert. Das macht wahrscheinlich auch Array.Resize so. Wenn das Array sehr gross ist oder sich die Grösse des Arrays oft ändert, kann es durchaus sein, dass eine Liste effektiver ist.
 

Logge dich ein, um hier zu kommentieren!