Back to questions
Junior — Middle
69
Какие способы реализуют интерфейс IEnumerable в языке программирования?
Answer from AI
sobes.tech AI
В языке C# интерфейс IEnumerable реализуется классами и структурами, которые предоставляют метод GetEnumerator(), возвращающий объект, реализующий интерфейс IEnumerator. Это позволяет перебирать коллекцию с помощью цикла foreach.
Основные способы реализации IEnumerable:
- Реализация вручную:
public class MyCollection : IEnumerable
{
private object[] items = {1, 2, 3};
public IEnumerator GetEnumerator()
{
for (int i = 0; i < items.Length; i++)
yield return items[i];
}
}
- Реализация обобщенного интерфейса
IEnumerable<T>:
public class MyCollection<T> : IEnumerable<T>
{
private T[] items;
public MyCollection(T[] items) { this.items = items; }
public IEnumerator<T> GetEnumerator()
{
for (int i = 0; i < items.Length; i++)
yield return items[i];
}
IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
- Использование коллекций из стандартной библиотеки, которые уже реализуют
IEnumerable(например,List<T>,Array).
Таким образом, ключевой момент — предоставить метод GetEnumerator(), который возвращает перечислитель для обхода элементов коллекции.