ToArray()와 ToList()의 실행 원리 ToArray와 ToList함수는 파라미터로 받은 enumerator 인터페이스를 ICollection 인터페이스로 타입 변경을 시도하여 ICollection의 CopyTo 함수를 사용하도록 한다. 컬렉션 인터페이스를 획득할 수 없는 경우, enumerator의 MoveNext를 사용하여 동적으로 배열의 크기를 늘리면서 아이템을 (레퍼런스) 복사한다. 컬렉션 인터페이스에서 새로운 컬렉션을 생성하는 경우, 컬렉션을 복사하는 과정에서 배열의 크기가 동적으로 변경되지 않도록 하기 때문에 불필요한 메모리 할당과... Continue Reading →