[C#] LINQ 소개 및 사용법



이번 포스팅에서는 C# 문법 중 하나인, LINQ에 대해 알아보도록 하겠습니다.

 

LINQLanguage-Intergreated Query의 약자?로써, .NET Framework 버전 3.5부터 도입이 되었습니다.

 

그냥 쉽게 간단히 얘기해 C#에서 데이터에 대해 질문을 하고, 해당 질문을 통해 데이터를 찾아가는 것이라고 이해하시면 되겠습니다~~

 

데이터베이스에서 쿼리(SQL) 구문을 사용해 보신 분들이라면,

쉽게 이해하시고 사용하실 수 있을거라 생각합니다.

 

기본 LINQ 구문


from 임의요소 변수 in 데이터소스 변수

where 조건

select 데이터를 가지고 있는 변수(임의요소 변수)

 


다만 기존의 ANSI 쿼리문과의 문법 구조가 조금은 다르기 때문에 해당 문법을 익히실 때, 조금은 헷갈리실 수 있지만 여러 번 LINQ 문법을 사용하시다 보면 금방 익숙해 지실거라 생각합니다.^^



LINQ 사용 시나리오


- Student 클래스를 생성하여 해당 학생들은 각 객체로 선언해 LIST에 저장하고, 해당 LIST에 저장되어 있는 학생들을 나이에 맞게 조회하게끔 LINQ를 이용하여 코드를 작성해 보도록 하겠습니다.

 


소스코드


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

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

 

namespace test

{

    class Program

    {

        static void Main(string[] args)

        {

            //Student 객체 선언

            Student student1 = new Student();

            Student student2 = new Student();

            Student student3 = new Student();

 

            //Student형의 List 변수 student_List선언

            List<Student> student_List = new List<Student>();

 

            student1.name = "범범조조";

            student1.age = 26;

            student1.grade = 4;

 

            student2.name = "홍길동";

            student2.age = 24;

            student2.grade = 3;

 

            student3.name = "장영실";

            student3.age = 39;

            student3.grade = 2;

 

            student_List.Add(student1);

            student_List.Add(student2);

            student_List.Add(student3);

 

            //20 학생들을 조회하는 LINQ 구문

            var Twenty_Student = from _student in student_List

                                 where _student.age >= 20 && _student.age < 30

                                 orderby _student.age ascending

                                 select _student;

 

            //30 학생들을 조회하는 LINQ 구문

            var Thirty_Student = from _student in student_List

                                 where _student.age > 30

                                 orderby _student.age ascending

                                 select _student;

 

            foreach(var Stu in Twenty_Student)

            {

                Console.WriteLine("나이가 20대인 학생은 = {0} 입니다.", Stu.name);

            }

 

            Console.WriteLine();

            Console.WriteLine();

            Console.WriteLine();

 

            foreach (var Stu in Thirty_Student)

            {

                Console.WriteLine("나이가 30대인 학생은 = {0} 입니다.", Stu.name);

            }

        }

 

        class Student

        {

            public string name { get; set; }

            public int age { get; set; }

            public int grade { get; set; }

        }

 

    }

}

 

Colored by Color Scripter

cs

 


 

참고로 LINQ구문은 from~where~select 구문으로 진행됩니다!


또한, 저는 위에서 LIST 컬렉션을 이용하여 예제 코드를 작성 하였지만 데이터 소스, Database, 컬렉션, 배열로부터 여러 데이터를 모두 LINQ를 이용하여 다룰 수 있습니다~~

 

위의 소스코드를 실행 시켜보면 아래와 같은 실형 결과가 나타나게 됩니다.


실행 결과



이렇게 20, 30대 학생들을 LINQ 구문을 통해 알맞게 데이터를 조회하여 가져온 것을 확인 하실 수 있습니다.^^

 

마지막으로, LINQ 구문에서 from, where, order by, select 구문 말고도 group by, join 등 문법을 이용할 수 있는데, 해당 문법도 조만간 올려 보도록 하겠습니다!

 

부족하지만 읽어주셔서 감사합니다.^^


728x90

이 글을 공유하기

댓글

Designed by JB FACTORY