Notice
Recent Posts
Recent Comments
관리 메뉴

안까먹을라고 쓰는 블로그

[C#] 제네릭[Generic] - List<T> 본문

Language/C#

[C#] 제네릭[Generic] - List<T>

YawnsDuzin 2012. 9. 9. 16:10

 

반응형

 

List<T>는 비제네릭 클래스인 ArrayList에 해당하는 타입으로 닷넷의 태동때부터 프레임워크의 일부분으로 제공되어 왔다.

몇 가지 새 기능들도 있고, ArrayList에는 있으나 List<T>에는 들어가지 못한 기능들도 몇가지 있다.

 

■ 추가된 기능

 추가된 메서드

메서드 설명 

ConvertAll

리스트의 각 항목을 다른 타입으로 변환하여 새 리스트를 결과로 얻는다.

Exists

리스트의 항모 중에서 주어진 조건에 맞는 항목이 있는지 검사한다.

TrueForAll

리스트의 모든 항목이 주어진 조건에 맞는지 검사한다.

FindXXX

주어진 조건에 맞는 첫 번째항목, 마지막 항목, 그리고 모든 항목들을 얻어온다.

RemoveAll

주어진 조건에 맞는 모든 항목들을 제거한다.

ForEach

리스트의 각 항목에 주어진 작업을 수행한다.

 (Action<T> 파라미터를 받는 메서드 대신 실제 코드를그 안에 적어 주어야 하는 foreach문과 혼동하지 않도록 주의한다.)

 

▶ Example

1
2
3
4
5
6
7
8
9
10
11
12
// 리스트에 숫자들을 저장
for (int i = 2; i <= 100; i++)
{
    candidates.Add(i);
}
// 소수가 아닌 것들을 제거
for (int factor = 2; factor <= 10; factor++)
{
    candidates.RemoveAll(delegate(int x) { return x > factor && x % factor == 0; });
}
// 남아 있는 소수출력
candidates.ForEach(delegate(int prime) { Console.WriteLine(prime); });
cs

 

■ ArrayList에서 없어진 기능

 ArrayList 메서드

비슷한 효과를 얻는 방법

Adapter

제공되는 것이 없음 

 Clone

 list.GetRange(0, list.Count) 또는 new List<T>(list)

 FixedSize

 없음

 Repeat

 for 반복문 또는 이를 대체하는 제네릭 메서드 작성

 SetRange

 for 반복문 또는 이를 대체하는 제네릭 메서드 작성 

 Synchronized

 SynchronizedCollection

 

 

반응형

'Language > C#' 카테고리의 다른 글

[C#] Tray Icon 만들기  (0) 2012.09.11
[C#] ComboBox 직접 입력안되게 하기  (1) 2012.09.11
[C#] TEXT 로그남기기  (1) 2012.09.06
[C#] 제네릭[Generic]  (0) 2012.09.04
[C#] 시간체크(Stopwatch)  (0) 2012.09.04
Comments