[C#] ToArray() vs ToList()

ToArray()ToList()는 둘 다 컬렉션의 복사본을 만드는 메서드이지만 반환하는 자료형이 다릅니다. 각각 배열과 리스트를 반환한다는 점에서 몇 가지 차이가 있습니다.

차이점

  1. 반환 자료형
    • ToArray()는 배열을 반환합니다 (T[]).
    • ToList()는 리스트를 반환합니다 (List<T>).
  2. 메모리 할당
    • ToArray()는 고정된 크기의 배열을 만드므로, 메모리 할당이 리스트에 비해 효율적일 수 있습니다.
    • ToList()는 리스트를 반환하므로, 더 많은 데이터 추가나 제거에 유연하지만, 약간의 오버헤드가 추가될 수 있습니다.
  3. 성능
    • ToArray()는 크기가 고정되어 있기 때문에, 읽기 전용으로 사용될 때는 ToList()보다 약간 더 빠를 수 있습니다.
    • ToList()는 가변 크기의 자료형이므로 추가 작업에 유리하지만, 배열보다 약간의 메모리와 성능 오버헤드가 있을 수 있습니다.
  4. 사용 목적
    • ToArray()는 결과를 불변의 자료형으로 취급하고자 할 때 유리합니다.
    • ToList()는 이후에 추가나 제거 같은 리스트의 기능을 활용하려는 경우 유리합니다.

예시

var items = new List<int> { 1, 2, 3 };

// ToArray
int[] arrayCopy = items.ToArray();  // 배열로 반환

// ToList
List<int> listCopy = items.ToList();  // 리스트로 반환

요약

수정하지 않을 데이터가 필요하거나 성능이 우선 할 때에는 ToArray()를, 데이터 추가나 제거가 필요한 경우 ToList()를 사용하세요~ 유의미한 큰 차이가 없기는 합니다.

이전최근
댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗