'2010/07/30'에 해당되는 글 1건

  1. 2010/07/30 Collection 클래스 선택 (1)
.NET Framework 개발자 가이드
Collection 클래스 선택

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

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

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

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

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

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

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

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

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

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

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

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

    • 하나의 값: IList 인터페이스 또는 IList 제네릭 인터페이스를 기반으로 컬렉션을 사용합니다.

    • 하나의 키 및 하나의 값: IDictionary 인터페이스 또는 IDictionary 제네릭 인터페이스를 기반으로 컬렉션을 사용합니다.

    • 키가 포함된 하나의 값: KeyedCollection 제네릭 클래스를 사용합니다.

    • 하나의 키와 여러 값: NameValueCollection 클래스를 사용합니다.

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

    • Hashtable 클래스는 요소를 해시 코드별로 정렬합니다.

    • SortedList 클래스와 SortedDictionarySortedList 제네릭 클래스는 IComparer 인터페이스 및 IComparer 제네릭 인터페이스의 구현을 기반으로 요소를 키별로 정렬합니다.

    • ArrayListIComparer 구현을 매개 변수로 사용하는 Sort 메서드를 제공합니다. List 제네릭 클래스는 IComparer 제네릭 인터페이스 구현을 매개 변수로 사용하는 Sort 메서드를 제공합니다.

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

    • 항목이 10개 이하인 작은 컬렉션의 경우 ListDictionaryHashtable보다 빠릅니다. SortedDictionary 제네릭 클래스를 사용하면 Dictionary 제네릭 클래스보다 빠르게 조회할 수 있습니다.

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

    • IList 기반의 StringCollectionIDictionary 기반의 StringDictionarySystem.Collections.Specialized 네임스페이스에 있습니다.

    • 또한 제네릭 형식 인수에 대해 String 클래스를 지정하여 System.Collections.Generic 네임스페이스의 제네릭 컬렉션 클래스를 강력한 형식의 문자열 컬렉션으로 사용할 수 있습니다.

참고 항목

Posted by 블루마블 트래블 트랙백 0 : 댓글 1