Это должно быть безопасно, но не может быть оптимальным. Дьявол находится в реализации.
IEnumerable
вызывает GetEnumerator()
, который возвращает IEnumerator
, который реализует функцию Reset()
.
Как эта функция реализована, это может вызвать некоторые проблема. Если вы перечислите массив, вызывающий Reset()
, то просто установите его внутренний указатель на -1, и он готов снова перечислить.
Если вы перечисляете что-то, подключенное по сети, вам, возможно, придется повторить весь процесс подключения и снова запросить данные, которые будут более длинными и неоптимальными при использовании более одного раза.