티스토리 뷰
※ 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로 확장할 수 있다는 매력이 있는 것입니다.
'프로그래밍' 카테고리의 다른 글
LINQ 정렬 기능 사용하기 (0) | 2016.10.07 |
---|---|
LINQ 질의의 기본과 사전 타입 (0) | 2016.09.27 |
LINQ는 무엇인가? (0) | 2016.09.08 |
ASP.NET Web Forms 시작하기 (0) | 2016.09.06 |
VS2012로 XP에서도 수행되는 프로그램 빌드하기 (0) | 2016.09.01 |