■ Enumerable 클래스의 OrderBy<TSource, TKey> 확장 메소드에서 IComparer<T> 인터페이스를 사용해서 정렬하는 방법을 보여준다.
▶ Program.cs
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
using System; using System.Collections.Generic; using System.Linq; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { // 소스 리스트를 설정한다. List<string> sourceList = new List<string>() { "Blair" , "Lane" , "Jessie", "Aiden", "Reggie", "Tanner", "Maddox", "Kerry" }; // 마지막 문자 비교자를 사용해 정렬한다. IEnumerable<string> resultEnumerable = sourceList.OrderBy ( source => source, new LastCharacterComparer() ); // 결과를 출력한다. foreach(var result in resultEnumerable) { Console.WriteLine(result); } } #endregion } } |
▶ LastCharacterComparer.cs
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 32 33 34 |
using System.Collections.Generic; namespace TestProject { /// <summary> /// 마지막 문자 비교자 /// </summary> public class LastCharacterComparer : IComparer<string> { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Public #region 비교하기 - Compare(source1, source2) /// <summary> /// 비교하기 /// </summary> /// <param name="source1">소스 문자열 1</param> /// <param name="source2">소스 문자열 2</param> /// <returns>비교 결과</returns> public int Compare(string source1, string source2) { return string.Compare ( source1[source1.Length - 1].ToString(), source2[source2.Length - 1].ToString() ); } #endregion } } |