Назад к вопросам
Middle
4
Чем List отличается от IEnumerable?
Компании, где спрашивали
СБК ПАРУС
Ответ от нейросети
sobes.tech AI
IEnumerable — это интерфейс, который предоставляет возможность перебора коллекции с помощью перечислителя (итератора). Он определяет только один метод GetEnumerator(), который возвращает объект для последовательного обхода элементов.
List<T> — это конкретная реализация коллекции, которая хранит элементы в виде массива с динамическим изменением размера. Он реализует множество интерфейсов, включая IEnumerable<T>, ICollection<T>, IList<T>.
Ключевые отличия:
IEnumerableпредоставляет только возможность чтения и перебора элементов, не гарантирует доступ по индексу и не поддерживает изменение коллекции.List<T>позволяет добавлять, удалять, изменять элементы, а также обеспечивает быстрый доступ по индексу.
Пример:
IEnumerable<int> enumerable = new List<int> {1, 2, 3};
// Можно перебирать, но нельзя добавить элемент напрямую через IEnumerable
List<int> list = new List<int> {1, 2, 3};
list.Add(4); // Можно изменять коллекцию
int second = list[1]; // Доступ по индексу