[C# 문법] Dictionary<key, Dcitionary<<T>,<T>> 이중 Dictionary Linq 사용 방법

소개

안녕하세요. 오늘은 C# 문법에서 Dictionary 컬렉션을 이용하여 Linq로 데이터를 다루는 방법에 대해서 간단히 알려 드리려고 합니다. 그 중에서도 Dictionary 컬렉션에서 예를들어 Key 혹은 Value 값이 다시 Dictionary 형태 즉, 이중 Dictionary 형태의 데이터를 손 쉽게 가져오는 방법에 대해서 알려 드리겠습니다. 해당 방법을 알고 계시면 여러모로 유용할 것 같더라고요! 그럼 바로 예제 코드를 작성해서 보여 드리도록 하겠습니다.

예제 코드

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

namespace ConsoleApp6
{
    class Program
    {
        static void Main(string[] args)
        {
            Dictionary<int, Dictionary<string, string>> dic = new Dictionary<int, Dictionary<string, string>>();
            Dictionary<string, string> dic2 = new Dictionary<string, string>
            {
                { "29", "범범조조" },
                { "23", "아이유" },
                { "33", "유재석" },
                { "43", "정형돈" },
                { "53", "박명수" }
            };

            dic.Add(1, dic2);

            var result = dic.SelectMany(s => s.Value)
                            .Select(x => x.Value)
                            .ToList();


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

            // 이름이 유재석인 사람 결과 조회
            var nameResult = dic.SelectMany(s => s.Value.Where(w => w.Value.Equals("유재석")))
                                .Select(x => x.Key)
                                .ToList();

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();

            foreach (var item in nameResult)
            {
                Console.WriteLine($"유재석 나이 : {item}");
            }
        }
    }
}

실행 결과

Value : 범범조조
Value : 아이유
Value : 유재석
Value : 정형돈
Value : 박명수



유재석 나이 : 33
  • Linq 구문을 통해서 쉽게 이중 Dictionary 컬렉션의 Key, Value 들의 정보를 가져올 수 있습니다.
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY