보뇨 다이어리

Dictionary 클래스에 key 값 정렬하기 본문

컴퓨터 관련/C# 정보

Dictionary 클래스에 key 값 정렬하기

보뇨 2018. 11. 2. 12:58
반응형

좀 무식한 방법일수도 있지만 참고하라고 글씀 :)


A 라는 기능을 예전에 구현했었는데 그 A 기능의 자료구조가 HashTable 로 되어있었다

문제는 정렬이 되어있지않은채로 데이터를 뿌려졌기 때문에 정렬을 할필요가 생겼는데 HashTable 의 경우 hash값에 따라 순서가 변함

그래서 sortedList 의 인자로 받아서 정렬했었는데 여기서도 문제가 생김 

예를들어서 3자리로 구성된 숫자들만 나열할때는 소팅이 되어있는 상태인데 3자리 수와 2자리 수가 있을경우 3자리 수를 먼저 정렬하고 뒤에 2자리 수를 정렬하는것이다 대표적으로 컴퓨터에서 이미지파일 이름을 만들때 12, 13, 14, 15, .... 1, 2, 3, 4, .... 이런식으로 되는것과 같이 말이다


해결방법은 Dictionary 클래스를 쓰는것이다 이것도 SortedList 랑 비슷해서 의아하겠지만 Dictionary 쪽에는 ...Keys.ToArray() 메소드가 존재하기때문이다. 그다음에 array 를 정렬해준다음에 그 array 키값으로 루프를 돌아주면 된다

코드는 아래와 같다

1
2
3
4
5
int[] oneEmpl = voList.Employees.Keys.ToArray();
Array.Sort(oneEmpl);
for(int k=0;k<oneEmpl.Length; k++)
{
  EmployeeVO vo = voList.Employees[oneEmpl[k]];
cs


반응형