Hallo,
ich würde gerne wissen wie viele Elemente ich in einer Liste haben kann. Ich bin Anfangs von -Theoretisch- Unendlich vielen ausgegangen.
Auch wenn die nahe liegende Vermutung int.MaxValue heißt, stimmt das nicht. Auch uint.MaxValue ist nicht Korrekt.
Ich habe mich entschlossen ein Programm zu machen um es heraus zu finden:
[highlight=c#]
List<int> IntList = new List<int>();
for (int i = 0; i < int.MaxValue; i++)
{
IntList.Add(i);
}[/highlight]
Hier bekomme ich nach 134.217.728 Durchläufen eine OutOfMemory Exception.
Das gleiche bei uint.MaxValue;
Aber die Exception kommt nicht immer bei 134.217.728 Einträgen. Sie scheint - und das ist unlogisch - variabel zu sein.
Wenn ich die Liste mit Objekten fülle ist schneller Schluss:
[highlight=c#]
List<List<int>> ObjList = new List<List<int>>();
for (int i = 0; i < int.MaxValue; i++)
{
List<int> IntList = new List<int>();
ObjList.Add(IntList);
}[/highlight]
Hier Knallts schon bei 33.554.432 Durchläufen.
Jetzt stellen sich mir 2 Fragen:
Leider habe ich keine Antwort im großen WWW finden können.
Weiß irgendjemand mehr?
Vielen Dank für's lesen,
Timor B.
ich würde gerne wissen wie viele Elemente ich in einer Liste haben kann. Ich bin Anfangs von -Theoretisch- Unendlich vielen ausgegangen.
Auch wenn die nahe liegende Vermutung int.MaxValue heißt, stimmt das nicht. Auch uint.MaxValue ist nicht Korrekt.
Ich habe mich entschlossen ein Programm zu machen um es heraus zu finden:
[highlight=c#]
List<int> IntList = new List<int>();
for (int i = 0; i < int.MaxValue; i++)
{
IntList.Add(i);
}[/highlight]
Hier bekomme ich nach 134.217.728 Durchläufen eine OutOfMemory Exception.
Das gleiche bei uint.MaxValue;
Aber die Exception kommt nicht immer bei 134.217.728 Einträgen. Sie scheint - und das ist unlogisch - variabel zu sein.
Wenn ich die Liste mit Objekten fülle ist schneller Schluss:
[highlight=c#]
List<List<int>> ObjList = new List<List<int>>();
for (int i = 0; i < int.MaxValue; i++)
{
List<int> IntList = new List<int>();
ObjList.Add(IntList);
}[/highlight]
Hier Knallts schon bei 33.554.432 Durchläufen.
Jetzt stellen sich mir 2 Fragen:
- Warum ist das ende des (Internen) Listen Index nicht bei int.MaxValue?
- Warum ist die Anzahl der Einträge abhängig, von dem was ich in die Liste gebe?
Leider habe ich keine Antwort im großen WWW finden können.
Weiß irgendjemand mehr?
Vielen Dank für's lesen,
Timor B.
Comment