LINQ(Language INtegrated Query)


링큐는 DB, XML, Object, Text 등 프로그래밍 언어에 관계없이 독립적으로 동작하는 쿼리문입니다.


아래 소스는 1, 2, 3, 4, 5, 6, 7, 8 의 값을 가진 배열에서 4보다 큰 값을 불러온 후 올림차순(descending) 정렬하여 출력하는 소스입니다.

※ 여기서 where절에 4보다 큰 값이라는 조건은 let 절에서 계산하여 저장한 변수의 값으로 적용하였습니다.


예제 소스

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] array = { 1, 2, 3, 4, 5, 6, 7, 8 };

            /* 
            from, select, orderby, group은 일반적으로 DB에서 사용하는 
            sql 쿼리문과 사용되는 의미가 같습니다.
            */
            var elements = from element in array

             /*
            let 키워드를 사용하면 임의로 계산한 결과를 저장하여 where절에서 편리하게 사용할 수 있고 
            여러번 계산하지 않아도 되므로 성능적으로도 향상시킬 수 있습니다.
            */
            let exampleLet = 1+ 3
            orderby element descending        //default는 ascending(생략 가능)
            where element > exampleLet
            select element;

            /*
            LINQ를 사용하여 나온 결과를 변환하거나 프로젝션 하려면 
            foreach문으로 루프를 통해 결과를 반영할 수 있습니다.
            */
            foreach (var element in elements)
            {
                Console.Write(element);
                Console.Write(" ");
            }
            Console.WriteLine();
        }
    }
}



실행 결과



아래의 MSDN에 있는 LINQ글을 참조하시면 더 많은 예제와 자세한 내용을 확인할 수 있습니다.

MSDN LINQ 참조 - http://msdn.microsoft.com/ko-kr/library/bb397926.aspx

Posted by 준콩ol 준콩ol

댓글을 달아 주세요