Junior
32
0
questionbank

Какие типы объектов можно использовать в цикле foreach в C#?

sobes.tech 神经网络回答

В цикле foreach в C# можно использовать любые типы объектов, реализующие один из следующих интерфейсов:

  • System.Collections.IEnumerable - Для неуниверсальных коллекций. Предоставляет неуниверсальный перечислитель IEnumerator.
  • System.Collections.Generic.IEnumerable<T> - Для универсальных коллекций. Предоставляет универсальный перечислитель IEnumerator<T>.

Класс или структура также могут использоваться в foreach, если они имеют публичный метод GetEnumerator(), который возвращает экземпляр класса/структуры, реализующей следующую сигнатуру (это называется pattern-based foreach):

  • Публичное свойство Current, возвращающее любой тип.
  • Публичный метод MoveNext(), возвращающий bool.
  • Опционально, публичный метод Dispose() (для правильного освобождения ресурсов при использовании using).

Примеры встроенных типов, которые можно использовать:

  • Массивы (int[], string[] и т.д.)
  • Коллекции из пространства имен System.Collections: ArrayList, Hashtable, Queue, Stack.
  • Коллекции из пространства имен System.Collections.Generic: List<T>, Dictionary<TKey, TValue>, HashSet<T>, Queue<T>, Stack<T>.
  • Строки (`strin

В цикле foreach в C# можно использовать любые типы объектов, реализующие один из следующих интерфейсов:

  • System.Collections.IEnumerable - Для неуниверсальных коллекций. Предоставляет неуниверсальный перечислитель IEnumerator.
  • System.Collections.Generic.IEnumerable<T> - Для универсальных коллекций. Предоставляет универсальный перечислитель IEnumerator<T>.

Класс или структура также могут использоваться в foreach, если они имеют публичный метод GetEnumerator(), который возвращает экземпляр класса/структуры, реализующей следующую сигнатуру (это называется pattern-based foreach):

  • Публичное свойство Current, возвращающее любой тип.
  • Публичный метод MoveNext(), возвращающий bool.
  • Опционально, публичный метод Dispose() (для правильного освобождения ресурсов при использовании using).

Примеры встроенных типов, которые можно использовать:

  • Массивы (int[], string[] и т.д.)
  • Коллекции из пространства имен System.Collections: ArrayList, Hashtable, Queue, Stack.
  • Коллекции из пространства имен System.Collections.Generic: List<T>, Dictionary<TKey, TValue>, HashSet<T>, Queue<T>, Stack<T>.
  • Строки (`strin

注册或登录以获取题库中所有题目的完整答案。

dotnetforeach-loopienumerablegenericscollectionsiteration