[C# 문법] Linq Join 구문 사용 예제
- C#/C# 문법
- 2019. 8. 20. 05:00
안녕하세요~~
오늘은 Linq에서 Join 구문 사용 방법에 대해서 알려드리고자 합니다.
Database에서 Join 구문의 내용과 같은 맥락으로 이해 하시면 되겠습니다.
시나리오
1. 두 개의 컬렉션을 선언하고, 학생의 이름과 나이를 저장시킨다.
2. 각 컬렉션을 Linq를 통하여 Join 해주고, 이름과 나이가 같은 학생들의 정보를 출력한다.
위의 시나리오 대로 예제 코드를 작성해 보도록 하겠습니다.
예제 코드
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 42 43 44 45 46 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace 조인구문 { class Program { public class Student { public string Name { get; set; } public int Age { get; set; } } static void Main(string[] args) { List<Student> stuList = new List<Student>() { new Student { Name = "범범조조", Age = 27 }, new Student { Name = "안정환", Age = 37 }, new Student { Name = "류현진", Age = 47 }, new Student { Name = "김선우", Age = 57 }, new Student { Name = "허구연", Age = 67 } };
Dictionary<string, int> stu_info = new Dictionary<string, int>();
stu_info.Add("안정환", 37); stu_info.Add("범범조조", 27);
//stuList와 stu_info 두개의 컬렉션을 //Join 시켜준다. var query = from stu in stuList join sti in stu_info on stu.Name equals sti.Key where stu.Age < 50 && sti.Value < 50 select new { stu, sti };
foreach(var x in query) { Console.WriteLine("{0} : {1} : {2} : {3}", x.stu.Name, x.stu.Age, x.sti.Key, x.sti.Value); } } } }
|
실행 결과
이처럼 현재 두 개의 컬렉션에 저장되어 있는 데이터에서, 이름이 같은 학생인 “범범조조”와 “안정환” 두 명의 학생들이 출력되는 것을 확인하실 수 있습니다.
감사합니다ㅎㅎ
'C# > C# 문법' 카테고리의 다른 글
[C# 에러] Substring 에러 – “System.ArgumentOutOfRangeException” 예외 처리하는 방법 (0) | 2019.08.31 |
---|---|
[C# 문법] 자료구조 Stack 이란? (0) | 2019.08.30 |
[C#] 특정 경로 파일 삭제하는 방법 (날짜별 지우기) (2) | 2019.08.19 |
[C# 문법] LINQ 그룹화와 정렬 기능 사용방법 (0) | 2019.08.16 |
[C# 문법] Log4Net 사용하여 Log 남기기 (0) | 2019.08.14 |
이 글을 공유하기