일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 스프링
- react
- VOA
- git
- Spring
- c#
- Spring Boot
- docker
- 마이바티스
- 코틀린
- Java
- AWS
- 리팩토링
- Winform
- mybatis
- machine-learning
- 리액트
- 도커
- kubernetes
- 쿠버네티스
- 자바
- 파이썬
- MySQL
- 스프링부트
- springboot
- design pattern
- Python
- DataGridView
- github
- Kotlin
Archives
- Today
- Total
보뇨 다이어리
Dictionary 클래스에 key 값 정렬하기 본문
반응형
좀 무식한 방법일수도 있지만 참고하라고 글씀 :)
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 |
반응형
'컴퓨터 관련 > C# 정보' 카테고리의 다른 글
dataGridView 안에 특정 Row 감추기 (0) | 2018.12.12 |
---|---|
Winform WebBrowser 내부에 Document 컨트롤하기 (0) | 2018.11.29 |
dataGridView drawing 스크롤에 따라 새로그리기 (0) | 2018.11.01 |
특정 header column 하단 정렬하기 (0) | 2018.10.30 |
이 설치 프로그램을 실행하려면 .NET Framework v4.6.1이(가) 있어야 합니다 에러 (0) | 2018.08.21 |