[C#,링크강좌]SelectMany

FSP(이종철) 0 852 2015.12.05 16:45
[C#,링크강좌]SelectMany

selectmany는 SQL의 Cross Join과 같이 가능한 모든 조인 집합을 만들어 내는 방식이다.
예제를 통해 이해하자.

기본적으로 Select는 하나의 Collection에서 Select하는 것이고
SelectMany는 다중 Collection에서 Select하는 것이다. 하나의 
컬렉션에 SelectMany를 사용한다는 것은 모든 가능한 조합을 
만드는 CROSS JOIN처럼 사용하겠다는 의미이다.

using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Linq;

class QueryVMethodSyntax
{
    static void Main()
    {
        List<string> animals = new List<string>() { "cat", "dog", "donkey" };
        List<int> number = new List<int>() { 10, 20 };

        var mix = number.SelectMany(num => animals, (n, a) => new { n, a });

        foreach(var a in mix) 
        {
            Console.WriteLine(a);
        }
    }
}



[결과]

{ n = 10, a = cat }
{ n = 10, a = dog }
{ n = 10, a = donkey }
{ n = 20, a = cat }
{ n = 20, a = dog }
{ n = 20, a = donkey }

Comments