Изучая IEnumerator
и IEnumerator<T>
, я наткнулся на следующее утверждение:
Если мы вызываем GetEnumerator() для любой коллекции, мы в основном получаем типобезопасную версию, то есть «общую» версию, заметным исключением в этом случае является массив, который возвращает классическую (неуниверсальную) версию.
У меня такой вопрос:-
Почему массивы возвращают "классический" Enumerator при вызове функции GetEnumerator()
, а другие структуры данных, такие как List<T>
и другие, возвращают общий Enumerator?
string[] tempString = "Hello World!" ;
var classicEnumerator = tempString.GetEnumerator() ; // non-generic version of enumerator.
List<string> tempList = new List<string> () ;
tempList.Add("Hello") ;
tempList.Add(" World") ;
var genericEnumerator = tempList.GetEnumerator() ; // generic version of enumerator.