C# LINQ로 Dictionary 정렬 하기 방법 및 예제

C#에서 연상 배열인 Dictionary를 LINQ를 사용하여 정렬하는 방법을 알아보도록 하겠습니다.

 

LINQ 정렬

LINQ로 정렬하기 위해서는 OrderBy 메서드를 사용합니다.

람다식으로 작성하기 때문에 Dictionary를 간단하게 정렬시킬 수 있습니다.

LINQ 정렬 예제

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

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

			var newTable = myTable.OrderBy(x => x.Value);

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

			Console.ReadKey();
		}
	}
}

 

결과

[Japan:OSAKA]
[Korea:Seoul]
[America:Washington]

 

위 예제에서는 Dictionary 오브젝트 myTable의 값(Value)을 오름차순으로 정렬하였습니다.

예제에서는 값으로 정렬을 하였지만 키(Key)로 정렬하고 싶은 경우에는 x.Value 부분을 x.Key로 변경해주면 키로 정렬할 수 있습니다.

댓글