2009-11-13 11 views

cevap

20

List<T> geçerli uygulaması Int32 her yerde kullanır böylece Int32.MaxValue öğelerin bir akım teorik maksimum (2^31-1 var ya 2147483647).

Ancak, .NET çerçevesinin 2GB'lık bir maksimum nesne boyutu sınırı vardır, bu nedenle List<byte> veya List<bool> gibi tek baytlık öğeler listelerine yalnızca öğe sınırının yakınında bir yere ulaşırsınız.

Pratikte, bu sınırlardan birine basmadan önce muhtemelen bitişik belleğin bitmesine neden olacaksınız.

+2

* Teorik olarak *, sadece Int32.MaxValue'ye kadar olan öğelere rastgele erişebildiğiniz anlamına gelir, kaç tane eleman olabilir, elbette * teorik olarak *. –

+1

@Martinho: Şu anki uygulama 'Int32' * her yerde kullanılıyor *, bu yüzden sadece 2^31 öğeyle sınırlı olmayan rastgele erişim değil. (Elbette, Int32'nin dahili olarak kullanımı sadece bir uygulama detayıdır, ancak indeksleyici ve "Count" gibi özellikler kamu sözleşmesinin bir parçasıdır.) – LukeH