[C#링크강좌]Linq,Join예제(메소드기반, 쿼리식기반두가지예제)
꽁스짱
C#
0
1394
2021.02.15 23:16
[C#링크강좌]Linq,Join예제(메소드기반, 쿼리식기반두가지예제)
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;
class Customer
{
public string Name { get; set; }
public int Age { get; set; }
}
class Sale
{
public string Name { get; set; }
public string Goods { get; set; }
}
class Onj
{
static void Main(string[] args)
{
Customer[] customer = {
new Customer() {Name="ONJSYSTEM", Age=8},
new Customer() {Name="오라클자바커뮤니티실무학원", Age=6},
new Customer() {Name="오라클자바커뮤니티", Age=13}
};
Sale[] sale = {
new Sale() {Name="ONJSYSTEM", Goods="볼펜"},
new Sale() {Name="오라클자바커뮤니티실무학원", Goods="연필"},
};
//쿼리식 : 내부조인("오라클자바커뮤니티"는 매출내역이 없으므로 출력되지 않는다")
var result1 = from c in customer
join s in sale on c.Name equals s.Name
select new
{
name = c.Name,
age = c.Age,
goods = s.Goods
};
//메소드 기반쿼리식
var result2 = customer.Join
(
sale,
c => c.Name,
s => s.Name,
(c, s) => new { name=c.Name, age=c.Age, goods=s.Goods }
);
foreach (var c in result1)
{
Console.WriteLine("이름 : {0}, 나이 : {1}, 상품 : {2}", c.name, c.age, c.goods);
}
Console.WriteLine("----------------------------------------------------------------");
foreach (var c in result1)
{
Console.WriteLine("이름 : {0}, 나이 : {1}, 상품 : {2}", c.name, c.age, c.goods);
}
}
}
[결과]
이름 : ONJSYSTEM, 나이 : 8, 상품 : 볼펜
이름 : 오라클자바커뮤니티실무학원, 나이 : 6, 상품 : 연필
---------------------------------------------------------------
이름 : ONJSYSTEM, 나이 : 8, 상품 : 볼펜
이름 : 오라클자바커뮤니티실무학원, 나이 : 6, 상품 : 연필