[C# 문법] LINQ 그룹화와 정렬 기능 사용방법



 

안녕하세요~~

 

오늘은 Linq에서 특정 데이터를 조회할 때, 그룹화를 해서 조회를 하고, 조회된 데이터를 정렬까지 하는 방법에 대해서 알려드리고자 합니다.


 

시나리오


1.    string[] 형태의 배열 변수를 하나 선언하고, 해당 변수에 여러 문자들을 저장한다.

2.    저장된 변수들에서 문자열의 길이를 기준으로 그룹화 시켜준다.

3.    그룹화가 되었으면, 문자열의 길이별로 정렬을 시킨다.

4.    출력한다.

 

예제 코드


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

using System;

using System.Collections.Generic;

using System.Data;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace test22

{

    class Program

    {

        static void Main(string[] args)

        {

            string[] datas = { "Hello""GoodBye""ByeBye"

"beombeomjojo""linq""world" };

 

            var query = from data in datas

                        orderby data ascending

                        group data by data.Length into lengthGroup 

//길이로 단어를 그룹 지움

                        orderby lengthGroup.Key descending

                        select (new { Length = lengthGroup.Key,

 Datas = lengthGroup });

 

            foreach(var x in query)

            {

                Console.WriteLine("Words of length :" + x.Length);

 

                foreach(string data in x.Datas)

                {

                    Console.WriteLine(" " + data);

                }

            }

 

        }

    }

}

 

Colored by Color Scripter

cs

 

실행 결과



 

이처럼 data 배열에 저장되어 있는 문자들을 oreder by를 통하여 오름차순으로 정렬을 시켜주고, group by를 이용하여 data.Length , 문자열의 길이로 단어들을 그룹화 시켜줍니다. 다음으로 그룹화 된 문자들을 길이대로 정렬 시켜줘서 조회를 해주면 위와 같은 실행 결과가 나오게 됩니다.

 

이로써, Linq를 이용하여 그룹화 및 정렬 하는 방법에 대해서 알아 보았습니다.

 

감사합니다.


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY