62 votes

quelle est la limite maximum de données dans la liste<string> en c#?

Je veux savoir combien de valeurs que je peux attribuer à la Liste? Par exemple

List<string> Item= runtime data

Les données ne sont pas fixes.il peut être 10000 ou plus de 1000000.J'ai Googlé mais de ne pas avoir une réponse exacte.Merci de m'aider à résoudre le problème.

Merci

91voto

LukeH Points 110965

Le nombre maximum d'éléments qui peuvent être stockés dans l'implémentation actuelle de l' List<T> est, théoriquement, Int32.MaxValue - un peu plus de 2 milliards de dollars.

Dans le courant de l'implémentation Microsoft du CLR il y a un maximum de 2 go taille de l'objet à la limite. (Il est possible que d'autres implémentations, par exemple Mono, n'ont pas cette restriction.)

Votre liste contient des chaînes, qui sont des types référence. La taille de référence sera de 4 ou 8 octets, selon que vous êtes en cours d'exécution sur un 32 bits ou 64 bits du système. Cela signifie que la limite pratique au nombre de chaînes, vous pouvez stocker sera d'environ 536 millions de dollars sur 32 bits, soit 268 millions de dollars sur 64 bits.

Dans la pratique, vous aurez plus de chances de fonctionner hors de l'imputables mémoire avant d'atteindre ces limites, surtout si vous êtes en cours d'exécution sur un système 32 bits.

14voto

Floyd Points 1300

2147483647 car toutes les fonctions hors Liste à l'aide de int.

Source de mscorlib:

private T[] _items;
private int _size;

public T this[int index]
{
  get
    {
      //...
    }
}

4voto

Saurabh Points 11097

liste.Count() de la propriété est int32, de sorte qu'il doit être le maxium de la limite de int32 mais comment votre liste effectue au cours de cette limite est une belle observation.

si vous faites une liste de manupulation des opérations, il serait linier en théorie.

je dirais que si vous êtes d'avoir un très grand nombre d'éléments thnink sur le Parallèle Collections .net 4.0, ce qui rendrait votre liste d'opérations plus réactif.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X