본문 바로가기
C++ 200제/코딩 IT 정보

C# List RemoveAll 사용법, 리스트 삭제 람다 문법 예제

by vicddory 2017. 3. 2.

C# List의 RemoveAll() 함수는 사용자 정의 조건에 맞는 모든 요소를 제거합니다.


1
2
3
public int RemoveAll(
    Predicate<T> match
)
cs


아래 두 개의 예제를 통해 C# List 요소를 제거하는 몇 가지 방법을 소개합니다.

리스트 삭제는 개별 요소, 전체 요소, 값으로 지우기 등 여러가지 방법이 있습니다.

C# List RemoveAll 첫번째. Remove(), RemoveAt(), RemoveRange(), RemoveAll() + 람다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
List<string> words = new List<string>();
 
words.Add("A");
words.Add("B");
words.Add("C");
words.Add("D");
words.Add("E");
words.Add("F");
 
words.Remove("A"); // B, C, D, E, F
words.RemoveAt(3); // B, C, D, F
words.RemoveRange(02); // D, F
words.RemoveAll(s => s.StartsWith("D")); // F
 
words.ForEach(
    delegate (string prime)
    {
        Console.WriteLine(prime);
    }
);
 
Result :
F
cs


위 예제는 리스트에서 제공하는 기본 함수를 응용한 예시입니다.


아래는 리스트 삭제할 때 람다 문법 사용하는 예제입니다.


C# List RemoveAll 기능, 항목 삭제 편리하게 (람다 응용)[c# list 리스트 값 변경 삭제]


C# List RemoveAll 두번째. RemoveAll(), ForEach()


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
List<int> candidates = new List<int>();
for (int i = 2; i <= 20; 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); }
   );
 
Result :
2
3
5
7
11
13
17
19
cs


이정도 방법만 안다면 상황에 맞는 효율적 수단을 사용할 수 있습니다.


특히, C# List()에서 기본 제공하는 ForEach와 함께 사용할 수 있는 람다는 꼭 알아 두셔야 합니다.



관련 글

C# List GetRange 부분 복사, 원하는 영역만 Copy (리스트 to array)

C++ List index 랜덤 접근, lterator advance next 응용 (비추천)

C# Json 파싱 예제 - List에 클래스 객체 저장 (json to list object)



출처 : C# RemoveAll List Method

ⓒ written by vicddory

댓글