다음을 통해 공유


데이터 분할(Visual Basic)

LINQ의 분할은 요소를 다시 정렬한 후 섹션 중 하나를 반환하지 않고 입력 시퀀스를 두 개의 섹션으로 나누는 작업을 가리킵니다.

다음 그림은 문자 시퀀스에 대한 세 가지 분할 작업의 결과를 보여 줍니다. 첫 번째 작업은 시퀀스에서 처음 세 개의 요소를 반환합니다. 두 번째 작업은 처음 세 개의 요소를 건너뛰고 나머지 요소를 반환합니다. 세 번째 작업은 시퀀스에서 처음 두 개의 요소를 건너뛰고 다음 세 개의 요소를 반환합니다.

Illustration that shows three LINQ partitioning operations.

시퀀스를 분할하는 표준 쿼리 연산자 메서드가 다음 섹션에 나와 있습니다.

연산자

연산자 이름 설명 Visual Basic 쿼리 식 구문 추가 정보
Skip 시퀀스에서 지정한 위치까지 요소를 건너뜁니다. Skip Enumerable.Skip

Queryable.Skip
SkipWhile 요소가 조건을 충족하지 않을 때까지 조건자 함수를 기반으로 하여 요소를 건너뜁니다. Skip While Enumerable.SkipWhile

Queryable.SkipWhile
Take 시퀀스에서 지정된 위치까지 요소를 사용합니다. Take Enumerable.Take

Queryable.Take
TakeWhile 요소가 조건을 충족하지 않을 때까지 조건자 함수를 기반으로 하여 요소를 사용합니다. Take While Enumerable.TakeWhile

Queryable.TakeWhile
Chunk 시퀀스의 구성 요소를 지정된 최대 크기의 청크로 분할합니다. Enumerable.Chunk
Queryable.Chunk

쿼리 식 구문 예제

Skip

다음 코드 예제에서는 Visual Basic의 Skip 절을 사용하여 배열의 나머지 문자열을 반환하기 전에 문자열 배열의 처음 네 문자열을 건너뜁니다.


Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

Dim query = From word In words
            Skip 4

Dim sb As New System.Text.StringBuilder()
For Each str As String In query
    sb.AppendLine(str)
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' keeps
' the
' doctor
' away

SkipWhile

다음 코드 예제에서는 Visual Basic의 Skip While 절을 사용하여 문자열의 첫 번째 문자가 “a”인 동안 배열의 문자열을 건너뜁니다. 배열의 나머지 문자열이 반환됩니다.


Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

Dim query = From word In words
            Skip While word.Substring(0, 1) = "a"

Dim sb As New System.Text.StringBuilder()
For Each str As String In query
    sb.AppendLine(str)
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' day
' keeps
' the
' doctor
' away

Take

다음 코드 예제에서는 Visual Basic의 Take 절을 사용하여 문자열 배열의 처음 두 문자열을 반환합니다.


Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

Dim query = From word In words
            Take 2

Dim sb As New System.Text.StringBuilder()
For Each str As String In query
    sb.AppendLine(str)
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' an
' apple

TakeWhile

다음 코드 예제에서는 Visual Basic의 Take While 절을 사용하여 문자열 길이가 5 이하인 동안 배열에서 문자열을 반환합니다.


Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

Dim query = From word In words
            Take While word.Length < 6

Dim sb As New System.Text.StringBuilder()
For Each str As String In query
    sb.AppendLine(str)
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' an
' apple
' a
' day
' keeps
' the

참고 항목