Home C# Grammar#0x | Dictionary
Post
Cancel

C# Grammar#0x | Dictionary

Dictionary

Dictionary를 List로 변환

  • 먼저 DictionaryList로 변환하는 방법
  • Dictionary는 키(Key)와 값(Value)로 구성되어 있습니다.
  • Dictionary를 리스트로 변환하려면 Dictionary의 키를 담을 ListDictionary의 값을 담을 List가 필요합니다.

Dictionary를 List로 변환 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System.Collections.Generic;

namespace Sample
{
	class Sample
	{
		static void Main()
		{
			var myTable = new Dictionary<string, string>();
			myTable.Add("Korea", "Seoul";);
			myTable.Add("Japan", "Tokyo";);
			myTable.Add("America", "Washington";);

			var kList = new List<string>(myTable.Keys);
			var vList = new List<string>(myTable.Values);

			Console.WriteLine("[{0}]", string.Join(", ", kList));
			Console.WriteLine("[{0}]", string.Join(", ", vList));

			Console.ReadKey();
		}
	}
}

결과

[Korea, Japan, America]

[Seoul, Tokyo, Washington]
  • 리스트 변수인 kList에는 키만 저장하였고, vList 리스트 변수에는 값만 저장

List를 Dictionary로 변환

  • 이번에는 List에서 Dictionary로 변환하는 방법
  • Dictionary로 변환하기 위해서는 2개의 리스트가 필요합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System;
using System.Collections.Generic;
using System.Linq;

namespace Sample
{
	class Sample
	{
		static void Main()
		{
			var kList = new List<string>();
			kList.Add("Korea";);
			kList.Add("Japan";);
			kList.Add("America";);

			var vList = new List<string>();
			vList.Add("Seoul";);
			vList.Add("Tokyo";);
			vList.Add("Washington";);

			Dictionary<string, string> myTable = 
			kList.Zip(vList, (k, v) => new { k, v }).ToDictionary(a => a.k, a => a.v);

			foreach(KeyValuePair<string, string> item in myTable) {
				Console.WriteLine("[{0}:{1}]", item.Key, item.Value); 
			}

			Console.ReadKey();
		}
	}
}

결과

[Korea:Seoul]

[Japan:Tokyo]

[America:Washington]
  • 2개의 리스트를 LINQZip 메서드를 사용하여 Dictionary 타입으로 변환
  • Dictionary는 키와 값으로 구성되어 있기 때문에 2개의 리스트가 필요 또한 2개의 리스트 요소 개수는 동일해야 합니다.

정리

  • DictionaryList로, ListDictionary로 변환하는 방법
  • 개인적으로는 ListDictionary로 변환하는 경우는 많지 않지만 DictionaryList로 변환하는 경우가 종종 있습니다.
  • 키만 필요하던지, 또는 값만 필요한 경우만도 있기 때문에 가끔씩 변환 작업을 하기도 합니다.
  • 필요한 처리에 맞게 변환을 할 수 있기 때문에 알아두면 유용하게 사용하실 수 있습니다.

참고 사이트

This post is licensed under CC BY 4.0 by the author.