Sobes.tech
Junior
155
questionbank

Что такое IEnumerable в C#?

Answer from AI

sobes.tech AI

IEnumerable в C# - это интерфейс, определенный в пространстве имен System.Collections. Он предоставляет общий способ перебора (итерации) элементов коллекции.

Ключевые особенности IEnumerable:

  • Доступ по итератору: Определяет метод GetEnumerator(), который возвращает объект, реализующий интерфейс IEnumerator. IEnumerator позволяет последовательно переходить от одного элемента коллекции к другому.
  • Только для чтения: IEnumerable позволяет только перебирать элементы. Он не предоставляет методов для добавления, удаления или изменения элементов коллекции.
  • Ленивая загрузка: Использование IEnumerable часто приводит к ленивой загрузке. Элементы генерируются или загружаются только по мере необходимости во время итерации.
  • Основа LINQ: IEnumerable является фундаментальным интерфейсом для многих операций LINQ. Методы расширения LINQ (такие как Where, Select, OrderBy) работают с коллекциями, реализующими IEnumerable, позволяя создавать цепочки операций.

Пример использования:

// Создаем список строк
List<string> fruits = new List<string> { "apple", "banana", "cherry" };

// Перебираем элементы списка с помощью foreach, который работает с IEnumerable
foreach (string fruit in fruits)
{
    // Выводим каждый фрукт
    Console.WriteLine(fruit);
}

Связанные интерфейсы:

Интерфейс Описание
IEnumerable Предоставляет перебор элементов коллекции
IEnumerable<T> Дженерик-версия IEnumerable для строго типизированных коллекций
ICollection Расширяет IEnumerable, добавляет методы для размера, добавления/удаления элементов (не универсальные)
ICollection<T> Дженерик-версия ICollection
IList<T> Расширяет ICollection<T>, добавляет доступ к элементам по индексу