-
[C#] Linq 기초용례 기록-IT 2017. 2. 20. 12:00
안녕하세요, 모스크바에서 생활하고 있는 개발자 윤진입니다.
C#에서는 Language-INtegrated Query를 사용하여 데이터를 조작할 수 있습니다.
SQL문에서나 사용했던 쿼리문을-
C# 소스코드에서 다른 함수들과 뒤섞어 사용한다는게 흥미롭습니다.
물론, Linq가 SQL 쿼리문과 완전 동일하진 않습니다.
변수를 먼저 정의하고 연산문을 사용하는 C# 프로그래밍 루틴과 동일하게,
from - in 문을 우선적으로 배치하여 쿼리문에서 사용할 데이터를 한정짓습니다.
그리고 연산을 위한 where문이 나옵니다.
where문에서는 from - in에서 추려진 데이터를 가지고 조건연산을 수행합니다.
최종적으로 select는 from - in과 where 문을 거쳐 나온 결과물을 재가공하여 투사해줍니다.
select는 IEnumerable 타입의 컬렉션을 반환합니다.
그렇기에 ToList()나 ToArray()로 반환값을 재가공하여 원하는 결과물을 얻을 수 있습니다.
* ToList() 사용
Listinput = new List () { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; List list = (from num in input where (num % 2) == 0 select num).ToList(); foreach (var item in list) { Console.WriteLine(item); } * ToArray() 사용
Listinput = new List () { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; int[] array = (from num in input where (num % 2) == 0 select num).ToArray(); foreach (var item in list) { Console.WriteLine(item); } 더불어 select 문에서 new { } 형태의 익명클래스를 사용하면,
결과값을 토대로 원하는 임시클래스를 만들어 사용할 수 있습니다.
Listinput = new List () { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var complex = from num in input select new { plus = num + num, multiply = num * num }; foreach (var item in complex) { Console.WriteLine("Plus:{0}, Multiply:{1}", item.plus, item.multiply); } Linq를 보니 MS가 개발자에게 개발편의를 제공하기 위해 참 애썼다는 생각이 듭니다.
프로그래밍 언어는 기능이 많아질수록 온갖 예외사항이 덧붙여지기 마련인데요.
여러 난관에도 불구하고, 재미난 기능을 개발하는 모습을 보니 한편으로는 대단하기도 하네요.
끝_
'IT' 카테고리의 다른 글
AI 코딩 에이전트의 Hook - 에이전트를 길들이는 가드레일 (2026년 3월 초 조사) (3) 2026.03.12 Tailscale로 모바일에서 데스크탑 개발 환경 원격 접속하기 (0) 2026.03.12 Acer 노트북 + 우분투 16.04 이슈해결기 (2) 2018.03.07 [人터뷰] 개발자의 길에서 벗어나 영업으로 떠난 С군 (0) 2017.02.28 [알고리즘] 유클리드 호제법, 간단하게 증명하기 (0) 2017.02.22 [人터뷰] 모스크바에서 만난 개발자, 알렉세이 (0) 2017.02.18 [C#] delegate, anonymous delegate, lambda 용례비교 (0) 2017.02.15 [C#] using과 Dispose()로 리소스 정리하기 (0) 2017.02.13 [C#] 필드 사용가능? - interface, abstract class, partial class, virtual method (30) 2017.02.12 [C#] 속성에 대한 간단한 테스트 (0) 2017.02.09