[C#링크강좌]Linq,Join예제(메소드기반, 쿼리식기반두가지예제)

홈 > 공유팁! > 프로그램 관련
프로그램 관련

[C#링크강좌]Linq,Join예제(메소드기반, 쿼리식기반두가지예제)

꽁스짱 0 935
[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, 상품 : 연필

 
0 Comments
제목