인덱스로 액세스할 수 있는 강력한 형식의 개체 목록을 나타냅니다. 목록의 검색, 정렬 및 조작에 사용할 수 있는 메서드를 제공합니다.
List<(Of <(T>)>) 클래스는 ArrayList 클래스의 제네릭 형태에 해당합니다. 이 클래스는 필요에 따라 크기가 동적으로 증가하는 배열을 사용하여 IList<(Of <(T>)>) 제네릭 인터페이스를 구현합니다.
List<(Of <(T>)>) 클래스는 같음 비교자와 순서 비교자를 모두 사용합니다.
-
Contains, IndexOf, LastIndexOf 및 Remove와 같은 메서드는 목록 요소에 대해 같음 비교자를 사용합니다. T 형식의 기본 같음 비교자는 다음과 같이 결정됩니다. T 형식이 IEquatable<(Of <(T>)>) 제네릭 인터페이스를 구현하면 같음 비교자가 해당 인터페이스의 Equals(T) 메서드이고, 그렇지 않으면 기본 같음 비교자가 Object..::.Equals(Object)입니다.
-
BinarySearch 및 Sort와 같은 메서드는 목록 요소에 대해 순서 비교자를 사용합니다. T 형식의 기본 비교자는 다음과 같이 결정됩니다. T 형식이 IComparable<(Of <(T>)>) 제네릭 인터페이스를 구현하면 기본 비교자가 해당 인터페이스의 CompareTo(T) 메서드이고, T 형식이 제네릭이 아닌 IComparable 인터페이스를 구현하면 기본 비교자가 해당 인터페이스의 CompareTo(Object) 메서드입니다. T 형식이 두 인터페이스 중 하나를 구현하지 않으면 기본 비교자가 없으므로 비교자나 비교 대리자가 명시적으로 제공되어야 합니다
성능 고려 사항
비슷한 기능을 가진 List<(Of <(T>)>) 클래스와 ArrayList 클래스 중에서 사용할 것을 결정할 때 List<(Of <(T>)>) 클래스가 대부분의 경우 성능이 좋으며 형식이 안전한 것을 고려합니다. 참조 형식이 List<(Of <(T>)>) 클래스의 T 형식에 사용되는 경우 두 클래스의 동작은 동일합니다. 그러나 값 형식이 T 형식에 사용되는 경우에는 구현과 boxing 문제를 고려해야 합니다.
값 형식이 T 형식에 사용되는 경우에는 컴파일러에서 해당 값 형식에 특정한 List<(Of <(T>)>) 클래스의 구현을 생성합니다. 즉, List<(Of <(T>)>) 개체의 목록 요소를 boxing하지 않아도 요소를 사용할 수 있으며, 500개 정도의 목록 요소가 만들어진 후 boxing하지 않는 목록 요소를 저장한 메모리가 클래스 구현을 생성하는 데 사용된 메모리보다 큽니다.
'C#.NET' 카테고리의 다른 글
[ ListBox ] 리스트박스 아이템 순서 바꾸기 (1) | 2010.01.12 |
---|---|
[날짜 , 날짜형식 ,날짜검색,날짜패턴] 사용자 지정 DateTime 형식 문자열 (0) | 2010.01.12 |
[설치,배포]설치 후에 프로그램을 자동으로 실행하는 방법 (0) | 2010.01.11 |
[ DataTable ] 데이타 테이블로 데이타리스트, 그리드뷰 채우기 (0) | 2010.01.07 |
생성자의 종류 와 프로퍼티의 의미 (0) | 2010.01.05 |
[MSDN]박싱(Boxing) 언박싱(UnBoxing) (0) | 2010.01.04 |
[MSDN].NET Framework Client Profile (0) | 2009.12.30 |
[MSDN]Windows 서비스 응용 프로그램을 위한 설치 프로젝트를 만드는 방법 (0) | 2009.12.29 |
base(C# 참조) (3) | 2009.12.29 |
app.config 읽기 (0) | 2009.12.23 |