List<T>.RemoveAll 메서드

2013-12-13

지정된 조건자에 정의된 조건과 일치하는 요소를 모두 제거합니다.

Namespace:  System.Collections.Generic
어셈블리:  mscorlib(mscorlib.dll)

public int RemoveAll(
	Predicate<T> match
)

매개 변수

match
형식: System.Predicate<T>
제거할 요소의 조건을 정의하는 Predicate<T> 대리자입니다.

반환 값

형식: System.Int32
List<T>에서 제거한 요소의 수입니다.

예외조건
ArgumentNullException

matchnull인 경우

Predicate<T>는 전달된 개체가 대리자에 정의된 조건과 일치하는 경우 true를 반환하는 메서드의 대리자입니다. 현재 List<T>의 요소가 개별적으로 Predicate<T> 대리자에 전달되고 조건과 일치하는 요소가 List<T>에서 제거됩니다.

이 메서드는 선형 검색을 수행하기 때문에 O(n) 연산입니다. 여기서 nCount입니다.

다음 코드 예제에서는 RemoveAll 메서드와 Predicate<T> 제네릭 대리자를 사용하는 몇 가지 다른 메서드를 보여 줍니다.

문자열의 List<T>이 만들어집니다. 여기에는 공룡 이름이 8개 포함되고 위치 1과 5에 있는 두 이름은 "saurus"로 끝납니다. 이 코드 예제에서는 EndsWithSaurus라는 검색 조건자 메서드도 정의합니다. 이 메서드는 문자열 매개 변수를 사용하고 입력 문자열이 "saurus"로 끝나는지 여부를 나타내는 부울 값을 반환합니다.

또한 Find, FindLastFindAll 메서드를 사용하여 검색 조건자 메서드로 목록을 검색합니다.

RemoveAll 메서드를 사용하여 "saurus"로 끝나는 엔트리를 모두 제거합니다. 이 메서드는 목록의 시작 부분부터 이동하면서 각 요소를 차례로 EndsWithSaurus 메서드에 전달합니다. EndsWithSaurus 메서드가 true를 반환하면 요소가 제거됩니다.

참고참고:

C#과 Visual Basic에서는 Predicate<string> 대리자(Visual Basic의 경우 Predicate(Of String))를 명시적으로 만들 필요가 없습니다. 이러한 언어에서는 컨텍스트에서 올바른 대리자를 유추하여 자동으로 만듭니다.

마지막으로 Exists 메서드는 "saurus"로 끝나는 문자열이 목록에 없는지 확인합니다.

Windows Phone OS

지원되는 버전: 8.0

표시:
© 2014 Microsoft