컬렉션 및 데이터 구조
서로 밀접하게 관련된 데이터를 컬렉션으로 그룹화하면 좀 더 효율적으로 처리할 수 있습니다. 서로 다른 코드를 작성하여 각 개별 개체를 처리하는 대신, 동일한 코드를 사용하여 컬렉션의 모든 요소를 처리할 수 있습니다.
컬렉션을 관리하려면 System.Collections, System.Collections.Generic 및 System.Collections.Concurrent 네임스페이스의 클래스와 System.Array 클래스를 사용하여 컬렉션의 개별 요소 또는 일정 범위의 요소를 추가, 제거 및 수정합니다. 전체 컬렉션을 다른 컬렉션에 복사할 수도 있습니다.
일부 System.Collections 클래스에는 정렬 기능이 있으며, 대부분 인덱싱되어 있습니다. 메모리 관리는 자동으로 처리되고 컬렉션의 용량은 필요에 따라 확장됩니다. 동기화는 컬렉션의 멤버에 액세스할 때 스레드로부터의 안전성을 제공합니다. 일부 System.Collections 클래스는 컬렉션을 읽기 전용이나 고정된 크기로 만드는 래퍼를 생성할 수 있습니다. 모든 System.Collections 클래스는 해당 요소 간 이동을 쉽게 할 수 있는 자체 열거자를 생성할 수 있습니다.
.NET Framework 버전 2.0에서 제네릭 컬렉션 클래스는 새로운 기능을 제공하며 강력한 형식의 컬렉션을 손쉽게 만들 수 있도록 합니다. System.Collections.Generic 및 System.Collections.ObjectModel 네임스페이스를 참조하십시오.
.NET Framework 버전 4에서 System.Collections.Concurrent 네임스페이스의 컬렉션은 여러 스레드에서 컬렉션 항목에 액세스하기 위한 효율적이고 스레드로부터 안전한 작업을 제공합니다.
LINQ to Objects 기능을 사용하면 개체 형식이 System.Collections.IEnumerable 또는 System.Collections.Generic.IEnumerable<T> 인터페이스를 구현하는 경우 LINQ 쿼리를 통해 메모리 내 개체에 액세스할 수 있습니다. LINQ 쿼리는 데이터 액세스를 위한 일반 패턴을 제공하고, 표준 foreach 루프에 비해 간결하고 쉽게 읽을 수 있으며, 필터링, 순서 지정 및 그룹화 기능을 제공합니다. 또한 LINQ 쿼리를 통해 성능을 향상시킬 수도 있습니다. 자세한 내용은 LINQ to Objects 및 PLINQ(병렬 LINQ)를 참조하십시오.
관련 항목
제목 |
설명 |
---|---|
컬렉션 형식의 정의를 설명하며 .NET Framework 클래스 라이브러리에서의 제네릭 컬렉션 형식과 제네릭이 아닌 컬렉션 형식 간의 차이점을 설명합니다. |
|
System.Array, System.Collections.Generic.List<T> 및 System.Collections.Generic.Dictionary<TKey, TValue>와 같이 일반적으로 사용되는 제네릭 및 제네릭이 아닌 컬렉션 형식을 설명합니다. |
|
System.Collections.BitArray 및 System.Collections.Specialized.BitVector32 컬렉션 형식을 설명합니다. |
|
System.Collections.Specialized.NameValueCollection, System.Collections.Specialized.StringDictionary 및 System.Collections.Specialized.StringCollection과 같은 특수 용도의 컬렉션을 설명합니다. |
|
여러 스레드의 안전하고 효율적인 동시 액세스를 지원하는 System.Collections.Concurrent.BlockingCollection<T>과 System.Collections.Concurrent.ConcurrentBag<T> 같은 컬렉션 형식에 대해 설명합니다. |
|
최적의 컬렉션 형식을 선택하고, 컬렉션을 열거하고, 다중 스레드에서 컬렉션을 사용하고, 컬렉션을 정렬하는 방법을 설명합니다. |
|
제네릭 컬렉션 형식의 사용을 설명합니다. |