English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

LINQ 분할 연산자 Skip & SkipWhile

시퀀스(집합)를 두 부분으로 나누고 그 중 하나를 반환하는 분할 연산자입니다.

메서드설명
Skip

시퀀스의 첫 번째 요소에서 시작하여 요소를 지정된 위치로 이동시킵니다.

SkipWhile

조건을 만족하지 않는 요소를 건너뛰어 조건을 만족하지 않는 요소까지 건너뛰습니다. 첫 번째 요소 자체가 조건을 만족하지 않으면, 0개의 요소를 건너뛰고 시퀀스의 모든 요소를 반환합니다.

제거

시퀀스의 첫 번째 요소에서 시작하여 요소를 지정된 위치로 이동시킵니다.

TakeWhile

첫 번째 요소부터 조건을 만족하지 않는 요소까지 요소를 반환합니다. 첫 번째 요소 자체가 조건을 만족하지 않으면, 비어 있는 집합을 반환합니다.

Skip

Skip() 메서드는 첫 번째 요소부터 지정된 수의 요소를 건너뛰고 나머지 요소를 반환합니다.

IList<string> strList = new List<string>(){ "One", "Two", "Three", "Four", "Five" };
var newList = strList.Skip(2);
foreach(var str in newList)
    Console.WriteLine(str);
출력:
Three
Four
Five

쿼리 문법에서 Skip 연산자

C # 쿼리 문법은 Skip & SkipWhile 연산자를 지원하지 않습니다. 그러나 쿼리 변수에 대해 Skip을 사용할 수 있습니다./SkipWhile 메서드를 사용하거나 전체 쿼리를 괄호로 감싸고 Skip을 호출합니다./SkipWhile

다음 예제에서는 쿼리 문법에서 skip 연산자를 보여줍니다-VB.NET 버전

Dim skipResult = From s In studentList
                 Skip 3
                 Select s

SkipWhile

LINQ의 SkipWhile() 확장 메서드는 명명된 것처럼 집합의 요소를 건너뛰고 지정된 조건이 true가 될 때까지 집합을 건너뛰습니다. 어떤 요소의 지정된 조건이 false가 되면, 모든 남은 요소를 포함한 새로운 집합을 반환합니다.

SkipWhile() 메서드는 두 가지 오버로드 메서드가 있습니다. 하나는 Func<TSource, bool> 타입의 프리드케이스를 받는 메서드와, 다른 하나는 Func<TSource, int, bool> 타입의 프리드케이스를 받는 메서드입니다.

의 길이가4자릿수의 문자열을 건너뛰기

예제: C#에서 SkipWhile() 메서드를 사용하여 길이가4의 요소를 건너뛰고 그 이후의 모든 요소를 반환합니다.

IList<string> strList = new List<string>() { 
                                            "One", 
                                            "Two", 
                                            "Three", 
                                            "Four", 
                                            "Five", 
                                            "Six"}
var resultList = strList.SkipWhile(s => s.Length < 4);
foreach(string str in resultList)
        Console.WriteLine(str);
출력:
Three
Four
Five
Six

의 길이가 작은 두 요소로 인해3이므로 SkipWhile()는 첫 두 요소를 건너뛰고 길이가4의 세 번째 요소. 일단 길이가4자릿수의 어떤 요소도 건너뛰지 않습니다. 그러나4자릿수.

지금, 다음 예제를 보면, SkipWhile() 메서드는 첫 번째 요소의 지정된 조건이 false인 이유로 어떤 요소도 건너뛰지 않습니다.

IList<string> strList = new List<string>() { 
                                            "Three", 
                                            "One", 
                                            "Two", 
                                            "Four", 
                                            "Five", 
                                            "Six"}
var resultList = strList.SkipWhile(s => s.Length < 4);
foreach(string str in resultList)
        Console.WriteLine(str);
출력:
Three
One
Two
Four
Five
Six

SkipWhile의 두 번째 오버로드는 각 요소의 인덱스를 전달합니다. 아래 예제를 참조하세요

예제: C#에서 인덱스를 사용한 SkipWhile() 메서드
IList<string> strList = new List<string>() { 
                                            "One", 
                                            "Two", 
                                            "Three", 
                                            "Four", 
                                            "Five", 
                                            "Six"}
var result = strList.SkipWhile((s, i) => s.Length > i);
foreach(string str in result)
    Console.WriteLine(str);
출력:
Five
Six

위 예제에서 lambda 표현식은 요소와 요소의 인덱스를 매개변수로 포함합니다. 그리고 문자열 요소의 길이가 인덱스보다 크지 않은 모든 요소를 건너뜁니다.

쿼리 문법의 SkipWhile 연산자

C# 쿼리 문법은 Skip & SkipWhile 연산자를 지원하지 않습니다. 그러나 쿼리 변수에 대해 Skip을 사용할 수 있습니다./SkipWhile 메서드를 사용하거나 전체 쿼리를 괄호로 감싸고 Skip을 호출합니다./SkipWhile ()。

예제: VB.Net에서 SkipWhile 메서드 사용
Dim strList = New List(Of string) From {
                                        "One", 
                                        "Two", 
                                        "Three", 
                                        "Four", 
                                        "Five", 
                                        "Six"}
Dim skipWhileResult = From s In studentList
                      Skip While s.Length < 4
                      Select s
출력:
Three
Four
Five
Six