[C# 문법] C# LIST OrderBy , ThenBy 이용하여 정렬하기


안녕하세요.

 

오늘은 C# 문법에서 OrderBy, ThenBy를 이용하여 LIST를 정렬하는 방법에 대해서 알려드리려고 합니다.


 

시나리오


-     STUDENT 클래스만들고 FILDNAME, AGE 두개를 선언

-     LIST<STUDENT> List 변수 선언

-     STUDENT 객체 만들고 3명의 학생들 정보 저장

-     이제 학생들은 List변수에 저장

-     ListOrderBy.ThenBy를 이용하여 학생의 나이, 이름 순으로 정렬하여 출력하기

 

시나리오는 위와 같습니다.

 

그럼 이제 실제 위의 시나리오를 토대로 코드를 작성해 보도록 하겠습니다.


코드 작성


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

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace TestList

{

    class Program

    {

        static void Main(string[] args)

        {

            STUDENT stu1 = new STUDENT();

            STUDENT stu2 = new STUDENT();

            STUDENT stu3 = new STUDENT();

 

            List<STUDENT> list = new List<STUDENT>();

 

            stu1.NAME = "범범조조";

            stu1.AGE = 27;

 

            stu2.NAME = "안정환";

            stu2.AGE = 26;

 

            stu3.NAME = "류현진";

            stu3.AGE = 40;

 

            list.Add(stu1);

            list.Add(stu2);

            list.Add(stu3);

 

            foreach(var stu in list)

            {

                Console.WriteLine("정렬  이름 : {0}, 나이 {1}", stu.NAME, stu.AGE);

            }

 

            Console.WriteLine("-----------------------------------------------------");

 

            var sortList = list.OrderBy(x => x.AGE).ThenBy(x => x.NAME).ToList();

 

            foreach(var sort in sortList)

            {

                Console.WriteLine("정렬  이름 : {0}, 나이 {1}", sort.NAME, sort.AGE);

            }

        }

    }    

 

    class STUDENT

    {

        public string NAME { get; set; }

        public int AGE { get; set; }

    }

}

 

Colored by Color Scripter

cs


실행 결과



위와 같이 정렬 전, 정렬 후의 출력 결과가 달라진 것을 확인하실 수 있습니다.

 

이처럼 LIST를 이용하여 정렬을 하실 때, OrderBy를 이용하시고, 또한 만약 두개 이상의 필드를 정렬하시려면 OrderBy 뒤에 ThenBy를 이용하여 추가적으로 정렬을 하실 수 있는 것을 기억하시면 유용하게 사용하실 수 있습니다.

 

감사합니다.^^


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY