티스토리 뷰



 ※ LINQ 연관글 모음

 


"LINQ는 무엇인가?"에서도 다루었지만 LINQ(Language-Integrated Query)는 데이터베이스, XML 파일, ADO.NET 오브젝트, DataSets 뿐만아니라 내부 자원에 대해서도 다른 데이터 소스와 동일한 방식으로 처리를 수행할 수 있음을 나누었습니다. 

다른 시각에서 바라보면 한가지 데이터소스에 대한 LINQ 사용법에 익숙하다면 다른 데이터소스에 대한 별다른 지식이 없어도 어렵지 않게 해당 데이터소스에 대한 처리를 수행할 수 있음을 시사하는 것입니다. XML 파일이 없어도 DBMS를 설치하지 않아도 LINQ와 친할 수 있는 방법이 있는 것입니다. 바로 "LINQ to Objects"입니다. 

"LINQ to Objects"는 배열이나 List, Dictionary 클래스 처럼  IEnumerable 이나 IEnumerable<T>를 지원하는 집합 오브젝트에 대해서 LINQ를 사용할 수 있도록 한 것으로 메모리에 있는 또는 외부에서 메모리로 로드한 정보를 담은 오브젝트에 대하서 LINQ를 사용하여 다양한 처리를 수행할 수 있도록 함으로써 개발자에게 개발의 편리함을 제공할 뿐만아니라 DBMS나 XML과 같은 다른 데이터소스에 대해서도 동일한 방식으로 작업을 수행할 수 있도록 길을 열어 줍니다. 텍스트 문자열이나 텍스트 파일에 대해서 마치 DBMS를 사용하듯이 LINQ 질의를 통해서 검색할 수 있기 때문에 개발 효율성을 극대화 시키면서도 코드 가독성을 높일 수 있는 장점이 있습니다. 

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

namespace linq1
{
    class Program
    {
        static void Main(string[] args)
        {
            string[] names = new string[] {"홍길동", "관리자", "홍길순", "테스터" };

            var qry =
                from name in names
                where name.Substring(0,1) == args[0]
                select name;

            Console.WriteLine("찾으려는 성은 {0} 입니다", args[0]);

            int i = 0;
            foreach (var item in qry)
            {
                Console.WriteLine(" {0} : {1} ", ++i, item);          
            }
        }
    }
}

위의 예제는 프로그램 파라미터로 성을 입력받아 문자열 배열에서 해당 성을 가진 이름을 출력하는 간단한 프로그램입니다. LINQ 구문을 사용하지 않더라도 배열을 처리할 수 있겠지만 이러한 LINQ 구문을 그대로 XML이나 DBMS로 확장할 수 있다는 매력이 있는 것입니다. 


댓글
댓글쓰기 폼