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>, добавляет доступ к элементам по индексу |