Entwickler-Ecke
C# - Die Sprache - Warum ArgumentOutOfRangeException
DrHoas - Mi 06.04.11 19:55
Titel: Warum ArgumentOutOfRangeException
Hallo,
ich hab
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| List<string> scListe = new List<string>(anzahlScs); System.Diagnostics.Debug.WriteLine(nscListe.Capacity); System.Diagnostics.Debug.WriteLine(Daten.GetAttribute(0)); for (int i = 0; i < anzahlScs; i++) { scListe[i] = Daten.GetAttribute(i); } |
Capacity ist 2, System.Diagnostics.Debug.WriteLine(Daten.GetAttribute(0)); liefert mir einen Wert. In der For-Schleife bekomme ich aber schon für i=0 eine ArgumentOutOfRangeException. Warum?
Dank und Gruß
Philipp
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
jaenicke - Mi 06.04.11 19:58
Und welchen Wert hat anzahlScs?
// EDIT:
Ok, ich habe in der Doku gelesen, dass der Parameter die Kapazitätsangabe ist.
Christian S. - Mi 06.04.11 19:58
Hallo!
Die Kapazität ist nicht gleich der Anzahl der Objekte, die sich in der Liste befinden. Es befinden sich immer nur so viele Elemente, wie Du explizit mit z.B.
Add hinzugefügt hast. Ich zitiere da die Doku mal zu:
Zitat: |
List<T>.Capacity-Eigenschaft
Ruft die Gesamtzahl der Elemente ab, die die interne Datenstruktur ohne Änderung der Größe aufnehmen kann, oder legt diese Anzahl fest. |
Dein Code wird dadurch aber nur unwesentlich anders: In der Schleife einfach die
Add-Methode benutzen.
Grüße
Christian
DrHoas - Do 07.04.11 11:07
tut! Danke.
Philipp
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!