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로 변경해주면 키로 정렬할 수 있습니다.
 

댓글