[C# 문법] Linq Join 구문 사용 예제

 

안녕하세요~~

오늘은 Linq에서 Join 구문 사용 방법에 대해서 알려드리고자 합니다.

Database에서 Join 구문의 내용과 같은 맥락으로 이해 하시면 되겠습니다.


 

시나리오


1.   두 개의 컬렉션을 선언하고, 학생의 이름과 나이를 저장시킨다.

2.   각 컬렉션을 Linq를 통하여 Join 해주고, 이름과 나이가 같은 학생들의 정보를 출력한다.

 

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

 

예제 코드


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

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace 조인구문

{

    class Program

    {

        public class Student

        {

            public string Name { get; set; }

            public int Age { get; set; }

        }

        static void Main(string[] args)

        {

            List<Student> stuList = new List<Student>()

            {

                new Student { Name = "범범조조", Age = 27 },

                new Student { Name = "안정환", Age = 37 },

                new Student { Name = "류현진", Age = 47 },

                new Student { Name = "김선우", Age = 57 },

                new Student { Name = "허구연", Age = 67 }

            };

 

            Dictionary<stringint> stu_info = new Dictionary<stringint>();

 

            stu_info.Add("안정환"37);

            stu_info.Add("범범조조"27);

 

            //stuList stu_info 두개의 컬렉션을

            //Join 시켜준다.

            var query = from stu in stuList

                        join sti in stu_info on stu.Name equals sti.Key

                        where stu.Age < 50 && sti.Value < 50

                        select new { stu, sti };

 

            foreach(var x in query)

            {

                Console.WriteLine("{0} : {1} : {2} : {3}", x.stu.Name, x.stu.Age, x.sti.Key, x.sti.Value);

            }

        }

    }

}

 

Colored by Color Scripter

cs


실행 결과


이처럼 현재 두 개의 컬렉션에 저장되어 있는 데이터에서, 이름이 같은 학생인 범범조조안정환 두 명의 학생들이 출력되는 것을 확인하실 수 있습니다.

 

감사합니다ㅎㅎ


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY