В то время как ответ «да» для всех встроенных коллекций и, возможно, для любого класса вменяемых коллекций, в документации нет никаких ограничений, сформулированных для IEnumerable
. Поэтому ничто не говорит нам о том, что каждая итерация должна быть стабильной.
Я мог бы представить следующий вариант использования:
foreach (int i in new Shuffler(1, 2, 3, 4, 5, 6, 7, 8, 9))
Console.WriteLine(i);
Это вполне может быть реализовано как класс, который выдает различный порядок для каждой итерации.
Итак - если вы также хотите рассмотреть странные пограничные случаи, ответ должен быть « no ».