Sobes.tech
Назад к вопросам
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]; // Доступ по индексу