Возможный дубликат:
В чем разница между IEnumerable и Array, IList и List?
Какая разница между двумя вышеуказанными?
Возможный дубликат:
В чем разница между IEnumerable и Array, IList и List?
Какая разница между двумя вышеуказанными?
A List<string>
представляет собой конкретную реализацию IEnumerable<string>
. Разница в том, что IEnumerable<string>
является просто последовательностью string
, но List<string>
индексируется индексом int
, может быть добавлен и удален из и вставлен в определенный индекс.
В принципе, интерфейс IEnumerable<string>
позволяет передавать поток string
в последовательности, но List<string>
позволяет вам делать это, а также изменять и получать доступ к элементам в списках определенными способами. IEnumerable<string>
- это общая последовательность string
, которая может быть итерирована, но не допускает случайного доступа. A List<string>
- это специальная коллекция переменных размеров с произвольным доступом.
различны.
IEnumerable позволяет выполнять итерацию с помощью цикла for для каждого цикла.
И IEnumerable просто имеет метод GetEnumerator.
И в списке реализовано много интерфейсов, таких как IEnumerable, Ilist и т.д. Так много функций в List.
В производительности IEnumerable быстрее, чем List.
IEnumerable<T>
- это интерфейс. Он должен быть реализован.
List<T>
- это одна реализация IEnumerable<T>
Один - это интерфейс: http://msdn.microsoft.com/en-us/library/9eekhta0.aspx
Другой класс, реализующий этот интерфейс: http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx
Кроме того, List - это массив, который растет, когда вы добавляете в него элементы, в то время как IEnumerable позволяет разработчикам использовать их в foreach.
Первый представляет собой конкретный List
строк, другой - любой класс, реализующий IEnumerable<string>