Какой интерфейс должен реализовать класс, чтобы к переменной данного типа был применим оператор foreach?



Оператор foreach может быть использован с переменными, которые реализуют интерфейс IEnumerable или IEnumerable, или с экземпляром любого типа, который удовлетворяет следующим условиям:



— должен содержать открытый метод GetEnumerator без параметров, возвращающий класс, структуру или тип интерфейса;

— тип возвращаемого значения метода GetEnumerator должен иметь открытое свойство Current и открытый метод MoveNext без параметров, возвращающий значение типа Boolean.