이 항목은 아직 평가되지 않았습니다.- 이 항목 평가

Enumerable.SkipWhile<TSource> 메서드 (IEnumerable<TSource>, Func<TSource, Int32, Boolean>)

업데이트: 2007년 11월

지정된 조건이 true이면 시퀀스에 있는 요소를 무시하고 나머지 요소를 반환합니다. 조건자 함수의 논리에 요소의 인덱스가 사용됩니다.

네임스페이스:  System.Linq
어셈블리:  System.Core(System.Core.dll)

public static IEnumerable<TSource> SkipWhile<TSource>(
	this IEnumerable<TSource> source,
	Func<TSource, int, bool> predicate
)

J#에서는 제네릭 API를 사용할 수 있지만 새로 선언할 수는 없습니다.
JScript에서는 제네릭 형식이나 메서드를 지원하지 않습니다.

Type 매개 변수

TSource

source 요소의 형식입니다.

매개 변수

source
형식: System.Collections.Generic.IEnumerable<TSource>

요소를 반환할 IEnumerable<T>입니다.

predicate
형식: System.Func<TSource, Int32, Boolean>

각 소스 요소를 조건에 대해 테스트할 함수이며, 이 함수의 두 번째 매개 변수는 소스 요소의 인덱스를 나타냅니다.

반환 값

형식: System.Collections.Generic.IEnumerable<TSource>

입력 시퀀스에서 predicate에 지정된 테스트를 통과하지 않는 급수의 첫 요소부터 시작되는 요소가 들어 있는 IEnumerable<T>입니다.

사용 정보

Visual Basic 및 C#에서는 이 메서드를 IEnumerable<TSource> 형식의 모든 개체에서 인스턴스 메서드로 호출할 수 있습니다. 인스턴스 메서드 구문을 사용하여 이 메서드를 호출할 경우에는 첫 번째 매개 변수를 생략합니다. 자세한 내용은 확장 메서드(Visual Basic) 또는 확장 메서드(C# 프로그래밍 가이드)를 참조하십시오.
예외상황
ArgumentNullException

source 또는 predicatenull인 경우

이 메서드는 지연된 실행을 사용하여 구현됩니다. 해당 작업을 수행하는 데 필요한 모든 정보가 저장된 개체가 즉시 반환됩니다. 이 메서드에서 나타내는 쿼리는 해당 GetEnumerator 메서드를 직접 호출하거나, foreach(Visual C#의 경우) 또는 For Each(Visual Basic의 경우)를 사용하여 개체를 열거할 때까지 실행되지 않습니다.

SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>) 메서드는 predicate를 사용하여 source의 각 요소를 테스트하고 결과가 true이면 해당 요소를 건너뜁니다. 조건자 함수가 요소에 대해 false를 반환하면 해당 요소와 source의 나머지 요소가 반환되고 predicate가 더 이상 호출되지 않습니다.

predicate가 시퀀스의 모든 요소에 대해 true를 반환하면 빈 IEnumerable<T>이 반환됩니다.

predicate의 첫 번째 인수는 테스트할 요소를 나타냅니다. 두 번째 인수는 source 내에서 요소의 인덱스(0부터 시작)를 나타냅니다.

TakeWhileSkipWhile 메서드는 기능을 보완하는 메서드입니다. 시퀀스 coll과 순수 함수 p가 있는 경우 coll.TakeWhile(p)coll.SkipWhile(p)의 결과를 연결하면 coll과 동일한 시퀀스가 됩니다.

Visual Basic 쿼리 식 구문에서 Skip While 절은 SkipWhile 호출로 변환됩니다.

다음 코드 예제에서는 SkipWhile<TSource>(IEnumerable<TSource>, Func<TSource, Int32, Boolean>)을 사용하여 요소의 인덱스에 따른 조건이 true인 경우 배열의 요소를 건너뛰는 방법을 보여 줍니다.

int[] amounts = { 5000, 2500, 9000, 8000, 
                    6500, 4000, 1500, 5500 };

IEnumerable<int> query =
    amounts.SkipWhile((amount, index) => amount > index * 1000);

foreach (int amount in query)
{
    Console.WriteLine(amount);
}

/*
 This code produces the following output:

 4000
 1500
 5500
*/



Windows Vista, Windows XP SP2, Windows Server 2003, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC

.NET Framework 및 .NET Compact Framework에서 모든 플랫폼의 전체 버전을 지원하지는 않습니다. 지원되는 버전의 목록을 보려면 .NET Framework 시스템 요구 사항을 참조하십시오.

.NET Framework

3.5에서 지원

.NET Compact Framework

3.5에서 지원
이 정보가 도움이 되었습니까?
(1500자 남음)

커뮤니티 추가 항목

추가
© 2013 Microsoft. All rights reserved.