33 votes

Quelle est la différence entre List<string> et IEnumerable<String> ?

Duplicata possible :
Quelle est la différence entre IEnumerable et Array, IList et List ?

Quelle est la différence entre les deux ci-dessus ?

75voto

Jason Points 125291

A List<string> est une implémentation concrète de IEnumerable<string> . La différence est que IEnumerable<string> est simplement une séquence de string mais un List<string> est indexable par un int peuvent être ajoutés et retirés, et des éléments peuvent être insérés à un index particulier.

Fondamentalement, l'interface IEnumerable<string> vous permet de diffuser le string dans la séquence mais List<string> vous permet de faire cela ainsi que de modifier et d'accéder aux éléments des listes de manière spécifique. Un site IEnumerable<string> est une séquence générale de string qui peut être itéré mais ne permet pas d'accès aléatoire. A List<string> est une collection spécifique de taille variable à accès aléatoire.

11voto

aeruL Points 120

Différent.

IEnumerable vous permet d'itérer dans la collection en utilisant une boucle for-each.

Et IEnumerable n'a que la méthode GetEnumerator.

Et la liste met en œuvre de nombreuses interfaces comme IEnumerable, Ilist, etc. Tant de fonctions dans List.

En termes de performances, IEnumerable est plus rapide que List.

4voto

Robert Harvey Points 103562

IEnumerable<T> est une interface. Elle doit être implémentée.

List<T> est une mise en œuvre de IEnumerable<T>

2voto

Etienne de Martel Points 16020

L'un est une interface : http://msdn.microsoft.com/en-us/library/9eekhta0.aspx

L'autre est une classe qui implémente cette interface : http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx

De plus, List est un tableau qui grandit lorsque vous y ajoutez des éléments, tandis que IEnumerable permet d'utiliser des implémenteurs dans un foreach.

2voto

Phil Points 48960

La première est une List de chaînes de caractères, l'autre est toute classe implémentant IEnumerable<string>

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