blubber89 hat folgendes geschrieben: |
Mich würde das aber trotzdem interessieren wie das mit List<T> funktioniert.
Kannst du mir das villeicht mal kurz erläutern? |
Das kann ich wohl nicht, weil es zu umfangreich ist. Du kannst in der
SDK-Doku die Informationen zu
List (generische Klasse) nachlesen.
Der entscheidende Unterschied ist die feste Größe beim
Array:
C#-Quelltext
1: 2: 3:
| string[] stringArray = new string[5]; stringArray[0] = "erster String"; Console.WriteLine(stringArray[0]); |
An den Positionen 1...4 stehen noch keine Strings, können aber eingetragen werden. Wenn du an Position 5 einen String eintragen willst, gibt es eine IndexOutOfRangeException. Nachträglich die Größe eines Array zu ändern ist möglich, aber umständlich und zeitaufwändig.
Bei einer
List<> können Elemente beliebig hinzugefügt und entfernt werden. Außerdem ist automatisch sicher, dass die Elemente einem bestimmten Typ entsprechen (anders als bei der Array-Klasse).
C#-Quelltext
1: 2: 3: 4: 5:
| List<string> stringList = new List<string>(); stringList.Add("erster String"); stringList.Add("zweiter String"); stringList.RemoveAt(0); Console.WriteLine(stringList[0]); |
Bei diesem Ablauf enthält die Liste nacheinander 0, 1, 2, 1 Elemente.
Gruß Jürgen