C#/Winform

(Linq) linq - join into

kjun.kr 2017. 4. 14. 11:56
728x90

People p1 = new People() { name = "A", age = 4 };
People p2 = new People() { name = "B", age = 5 };
People p3 = new People() { name = "C", age = 6 };
People p4 = new People() { name = "E", age = 7 };
People p5 = new People() { name = "F", age = 8 };

List<People> pList = new List<People>() { p1, p2, p3, p4, p5 };

 

Exam e1 = new Exam() { name = "A", subject = "과학" };
Exam e2 = new Exam() { name = "B", subject = "수학" };
Exam e3 = new Exam() { name = "A", subject = "수학" };
Exam e4 = new Exam() { name = "D", subject = "영어" };
Exam e5 = new Exam() { name = "C", subject = "기술" };
Exam e6 = new Exam() { name = "C", subject = "과학" };
List<Exam> eList = new List<Exam>() { e1, e2, e3, e4, e5, e6 };

 

var joinQuery = from pl in pList
                      join el in eList
                      on pl.name equals el.name
                      into joined
                      select new { Person = pl, Count = joined.Count() }; 

 

foreach (var grouped in joinQuery)
{
    Console.WriteLine("{0},{1}", grouped.Person.name, grouped.Count);
}

 

결과

A,2
B,1
C,2
E,0
F,0

 

728x90