Gibt es eine Grenze für Elemente, die in einer Liste gespeichert werden könnten?

7

Gibt es eine Grenze für Elemente, die in einer Liste gespeichert werden könnten? Oder Sie können einfach Elemente hinzufügen, bis Sie keinen Speicher mehr haben?

    
Hannoun Yassir 13.11.2009, 17:43
quelle

1 Antwort

20

Die aktuelle Implementierung von List<T> verwendet Int32 überall - um das Backing-Array für seine Count -Eigenschaft als Indexer und für alle internen Operationen zu erstellen - also gibt es eine aktuelle theoretisch Maximum von Int32.MaxValue -Elementen ( 2^31-1 oder 2147483647 ).

Aber das .NET-Framework hat auch eine maximale Objektgröße von 2 GB, so dass Sie mit Listen von Einzelbyte-Elementen wie List<byte> oder List<bool> nur irgendwo in der Nähe des Elementlimits sind.

In der Praxis wird Ihnen wahrscheinlich kein zusammenhängender Speicher mehr zur Verfügung stehen, bevor Sie eine dieser Grenzen erreichen.

    
LukeH 13.11.2009, 17:45
quelle

Tags und Links