Share via


데이터 그룹화

그룹화는 각 그룹의 요소가 공통 특성을 공유하도록 데이터를 그룹으로 나누는 작업입니다.

다음 그림에서는 문자의 시퀀스를 그룹화한 결과를 보여 줍니다. 각 그룹의 키는 문자입니다.

LINQ 그룹화 작업

데이터 요소를 그룹화하는 표준 쿼리 연산자 메서드는 다음 단원에 나열되어 있습니다.

메서드

메서드 이름

설명

C# 쿼리 식 구문

Visual Basic 쿼리 식 구문

추가 정보

GroupBy

공통 특성을 공유하는 요소를 그룹화합니다. 각 그룹은 IGrouping<TKey, TElement> 개체로 표시됩니다.

group … by

또는

group … by … into …

Group … By … Into …

Enumerable.GroupBy

Queryable.GroupBy

ToLookup

키 선택기 함수에 따라 요소를 Lookup<TKey, TElement>(일대다 사전)에 삽입합니다.

해당 사항 없음.

해당 사항 없음.

Enumerable.ToLookup

쿼리 식 구문 예제

다음 코드 예제에서는 C#의 group by 절 또는 Visual Basic의 Group By 절을 사용하여 목록의 정수를 짝수인지 홀수인지에 따라 그룹화합니다.


        Dim numbers As New System.Collections.Generic.List(Of Integer)(
             New Integer() {35, 44, 200, 84, 3987, 4, 199, 329, 446, 208})

        Dim query = From number In numbers 
                    Group By Remainder = (number Mod 2) Into Group

        Dim sb As New System.Text.StringBuilder()
        For Each group In query
            sb.AppendLine(If(group.Remainder = 0, vbCrLf & "Even numbers:", vbCrLf & "Odd numbers:"))
            For Each num In group.Group
                sb.AppendLine(num)
            Next
        Next

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

        ' This code produces the following output:

        ' Odd numbers:
        ' 35
        ' 3987
        ' 199
        ' 329

        ' Even numbers:
        ' 44
        ' 200
        ' 84
        ' 4
        ' 446
        ' 208


            List<int> numbers = new List<int>() { 35, 44, 200, 84, 3987, 4, 199, 329, 446, 208 };

            IEnumerable<IGrouping<int, int>> query = from number in numbers
                                                     group number by number % 2;

            foreach (var group in query)
            {
                Console.WriteLine(group.Key == 0 ? "\nEven numbers:" : "\nOdd numbers:");
                foreach (int i in group)
                    Console.WriteLine(i);
            }

            /* This code produces the following output:

                Odd numbers:
                35
                3987
                199
                329

                Even numbers:
                44
                200
                84
                4
                446
                208
            */

참고 항목

작업

방법: 중첩 그룹 만들기(C# 프로그래밍 가이드)

방법: 확장명에 따라 파일 그룹화(LINQ)

방법: 쿼리 결과 그룹화(C# 프로그래밍 가이드)

방법: 그룹화 작업에서 하위 쿼리 수행(C# 프로그래밍 가이드)

방법: 그룹을 사용하여 파일을 여러 파일로 분할(LINQ)

참조

group 절(C# 참조)

Group By 절(Visual Basic)

System.Linq

개념

표준 쿼리 연산자 개요