본문 바로가기

카테고리 없음

[C#] List 타입의 변수 값 정렬하기

C# 에서 특정 타입의 값을 배열대신 리스트 형으로 저장하는 경우가 있습니다.

배열로 저장하는 경우 값을 정렬하기 위해서는 조건문을 사용해야 하는데 

리스트타입을 사용하면 조건문을 사용할 필요없이 간단히 메서드만 호출해서 사용할 수 있습니다.

예를 들어, List<string> nameList = new List<string>();

이렇게 선언한 nameList 변수에서 .을 찍으면 사용할 수 있는 메서드목록이 나오는데 그중 Sort() 메서드는

값을 순차적으로 정렬합니다. 4개의 오버로드가 있으며 기본형을 제외한

나머지 3가지는 비교할 타입(사용자 지정타입 포함)을 지정할 수있고

범위를 지정할 수 있다는 것의 옵션이 제공되는 것만 다릅니다.

그리고 Reverse() 메서드를 사용하면 역순으로 값을 정렬할 수 있습니다.

2가지의 오버로드를 제공하는데 기본외에 범위를 지정하는 옵션을 제공합니다.

ex) 숫자

List<int> numList = new List<int>();
numList.Add(9);
numList.Add(5);
numList.Add(7);
numList.Add(3);
numList.Add(2);
numList.Add(1);
numList.Add(8);
numList.Sort(); //순차적으로 정렬할 때
//intList.Reverse(); //역순으로 정렬할 때

결과 : 1, 2, 3, 5, 7, 8, 9


문자 (알파벳)

List<string> engList = new List<string>();
engList.Add("z");
engList.Add("x");
engList.Add("c");
engList.Add("v");
engList.Add("ab");
engList.Add("ac");
engList.Add("e");
engList.Sort();

결과 : ab, ac, c, e, v, x, z


문자(한글)

List<string> korList = new List<string>();
korList.Add("ㄱ");
korList.Add("ㅋ");
korList.Add("ㅌ");
korList.Add("ㅎ");
korList.Add("ㅅ");
korList.Add("ㅈ");
korList.Add("ㅂ");
korList.Sort();

결과 : ㄱ, ㅂ, ㅅ, ㅈ, ㅋ, ㅌ, ㅎ