다음을 통해 공유


Collection 클래스 선택

업데이트: 2007년 11월

System.Collections 클래스는 주의하여 선택해야 합니다. 잘못된 형식을 사용할 경우 컬렉션의 사용이 제한될 수 있습니다.

다음과 같은 질문을 고려합니다.

  • 요소 값을 검색한 후에 대개 요소가 폐기되는 순차적 목록이 필요합니까?

    • 그런 경우 FIFO(선입선출) 동작이 필요하면 Queue 클래스 또는 Queue<T> 제네릭 클래스를 사용해 보십시오. LIFO(후입선출) 동작이 필요하면 Stack 클래스 또는 Stack<T> 제네릭 클래스를 사용해 보십시오.

    • 그렇지 않은 경우 다른 컬렉션을 사용해 보십시오.

  • FIFO, LIFO 또는 임의와 같이 특정 순서로 요소에 액세스해야 합니까?

    • Queue 클래스 및 Queue<T> 제네릭 클래스는 FIFO 액세스를 제공합니다.

    • Stack 클래스 및 Stack<T> 제네릭 클래스는 LIFO 액세스를 제공합니다.

    • LinkedList<T> 제네릭 클래스는 처음에서 끝으로 또는 끝에서 처음으로 순차적 액세스를 허용합니다.

    • 기타 컬렉션은 임의 액세스를 제공합니다.

  • 각 요소를 인덱스별로 액세스해야 합니까?

  • 각 요소에 하나의 값, 또는 하나의 키와 하나의 값 조합, 또는 하나의 키와 여러 값 조합이 포함되어야 합니까?

  • 요소가 입력된 순서와 다르게 요소를 정렬해야 합니까?

  • 정보에 대한 빠른 검색이 필요합니까?

  • 문자열만 수용하는 컬렉션이 필요합니까?

LINQ to Objects

개체 형식이 IEnumerable 또는 IEnumerable<T>을 구현하는 경우 개발자는 LINQ to Objects 기능을 통해 LINQ 쿼리를 사용하여 메모리 내 개체에 액세스할 수 있습니다. LINQ 쿼리는 데이터 액세스를 위한 일반 패턴을 제공하고, 표준 foreach 루프에 비해 간결하고 쉽게 읽을 수 있으며, 필터링, 순서 지정 및 그룹화 기능을 제공합니다. 또한 LINQ 쿼리를 사용하면 성능이 향상됩니다. 자세한 내용은 LINQ to Objects를 참조하십시오.

참고 항목

참조

System.Collections

System.Collections.Specialized

System.Collections.Generic

기타 리소스

컬렉션 만들기 및 조작