[C# 문법] Dictionary List 컬렉션 Linq Join 메서드식으로 표현하기

소개

안녕하세요. 오늘은 C# 문법에 대해서 알려 드리려고 합니다. Linq 구문에 대해서 알려 드리려고 하는데요. Linq 구문은 크게 2가지 방법이 있습니다. 일반 SQL 구문과 비슷한 쿼리식이 있고, 다른 하나는 Method 식이 있습니다. 오늘은 Linq 구문을 메서드 식으로 이용하여 서로 다른 2개의 컬렉션을 Join 하여 데이터를 다루는 방법에 대해서 보여 드리도록 하겠습니다.

예제로 작성할 코드는 1개의 Dictionary, 1개의 List 각각 다른 컬렉션이 있고 서로 다른 2개의 컬렉션을 하나의 공통된 필드를 선택하여 Join 하여 새롭게 데이터를 조회하는 방법을 보여 드리도록 하겠습니다. 해당 방법을 익히시게 되면 다른 부분에서도 응용이 가능하기 때문에 한번쯤은 코드를 따라 익히시면서 본인 것으로 만드는 것을 추천 드리겠습니다. 그럼 바로 예제 코드를 작성해 보도록 하겠습니다.

예제 코드

using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApp4
{
    class Program
    {
        static void Main(string[] args)
        {
            Dictionary<string, string> dictionary = new Dictionary<string, string>
            {
                { "1", "chip1" },
                { "2", "chip2" },
                { "3", "chip3" }
            };

            List<Student> list = new List<Student>()
            {
                new Student() {NAME = "1" , GRADE = "1"},
                new Student() {NAME = "2" , GRADE = "2"},
                new Student() {NAME = "3" , GRADE = "3"}
            };

            dictionary.Join(list,
                dic => dic.Key,
                li => li.NAME,
                (dic, li) => new
                {
                    Key = dic.Key,
                    Value = dic.Value,
                    Name = li.NAME,
                    GRADE = li.GRADE
                }).ToList().ForEach(x =>
                {
                    dictionary[x.Key] = x.Name;
                });

            foreach (var item in dictionary)
            {
                Console.WriteLine($"Key : {item.Key} Value = {item.Value}");
            };
        }
    }

    public class Student
    {
        public string NAME { get; set; }
        public string GRADE { get; set; }
    }
}

실행 결과

Key : 1 Value = 1
Key : 2 Value = 2
Key : 3 Value = 3
  • 위와 같이 Linq 를 메서드식으로 Join 하여 다뤄보았습니다.
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY