C# 배열 List 문자 또는 시간 날짜 순서로 LINQ 람다식 정렬하기 예제

C#에서는 숫자 이외에도 문자나 시간으로도 정렬을 시킬 수 있습니다.

우선 문자열 요소를 가지고 정렬하는 방법을 보겠습니다.

 

문자열 정렬

문자열 요소 정렬 예제

using System;
using System.Collections.Generic;
using System.Linq;

namespace Sample {
	class Sample {
		static void Main() {
			string[] src = {"Park", "Kim", "Lee"};
	
			// Array.Sort
			string[] dst1 = new string[src.Length];
			Array.Copy(src, dst1, src.Length);
			Array.Sort(dst1);
			Console.WriteLine("[{0}]", string.Join(", ", dst1));
	
			// List.Sort
			var list1 = new List<string>();
			list1.AddRange(src);
			list1.Sort();
			Console.WriteLine("[{0}]", string.Join(", ", list1));
	
			// 람다식 정렬
			var list2 = new List<string>();
			list2.AddRange(src);
			list2.Sort((a, b) => a.CompareTo(b));
			Console.WriteLine("[{0}]", string.Join(", ", list2));
	
			// LINQ 정렬
			var dst2 = src.OrderBy(a => a);
			Console.WriteLine("[{0}]", string.Join(", ", dst2));
	
			Console.ReadKey();
		}
	}
}

 

결과

[Kim, Lee, Park]
[Kim, Lee, Park]
[Kim, Lee, Park]
[Kim, Lee, Park]

 

예제 코드에는 Array.Sort, List.Sort, 람다식 정렬, LINQ 정렬을 작성해보았습니다.

 

시간 정렬

요소가 DateTime일 경우에 정렬하는 방법을 보겠습니다.

시간 정렬 예제

using System;
using System.Collections.Generic;
using System.Linq;

namespace Sample {
	class Sample {
		static void Main() {
			DateTime[] src = {DateTime.Parse("2018/12/03"), 
			DateTime.Parse("2019/01/01"), 
			DateTime.Parse("2018/10/13")};

			// Array.Sort
			DateTime[] dst1 = new DateTime[src.Length];
			Array.Copy(src, dst1, src.Length);
			Array.Sort(dst1);
			Console.WriteLine("[{0}]", string.Join(", ", dst1));

			// List.Sort
			var list1 = new List<DateTime>();
			list1.AddRange(src);
			list1.Sort();
			Console.WriteLine("[{0}]", string.Join(", ", list1));

			// 람다식 정렬
			var list2 = new List<DateTime>();
			list2.AddRange(src);
			list2.Sort((a, b) => a.CompareTo(b));
			Console.WriteLine("[{0}]", string.Join(", ", list2));

			// LINQ 정렬
			var dst2 = src.OrderBy(a => a);
			Console.WriteLine("[{0}]", string.Join(", ", dst2));

			Console.ReadKey();
		}
	}
}

 

결과

[10/13/2018 00:00:00, 12/03/2018 00:00:00, 01/01/2019 00:00:00]
[10/13/2018 00:00:00, 12/03/2018 00:00:00, 01/01/2019 00:00:00]
[10/13/2018 00:00:00, 12/03/2018 00:00:00, 01/01/2019 00:00:00]
[10/13/2018 00:00:00, 12/03/2018 00:00:00, 01/01/2019 00:00:00]

 

예제 코드에는 Array.Sort, List.Sort, 람다식 정렬, LINQ 정렬을 작성해보았습니다.

요소가 DateTime의 경우에도 정렬이 되는 것을 볼 수 있습니다.

댓글