[C#] 15일차 - 106. 두 개의 배열을 쌍으로 정렬C#/C#200제2021. 2. 13. 19:50
Table of Contents
Sort(Array, Array); // (1)
Sort(Array, Array, IComparer); // (2)
Sort(Array, Array, Int32, Int32); // (3)
Sort(Array, Array, Int32, Int32, IComparer); // (4)
(1) : 앞에 있는 배열을 기준으로 두 개의 배열을 오름차순 정렬합니다.
정렬 기준은 첫번째 배열의 값이고 두번째 배열은 첫번째 배열의 정렬 순서에 따라 정렬됩니다.
(2) : (1)번과 같이 정렬하지만 IComparer에 의해 순서가 결정됩니다.
(3), (4) : 배열의 전체가 아닌, 배렬의 일부를 정렬할 때 사용됩니다.
using System;
using System.Collections;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace A106_SortArrayPair
{
public class ReverseComparer : IComparer
{
public int Compare(object x, object y)
{
string s1 = (string)x;
string s2 = (string)y;
return string.Compare(s2, s1);
}
}
class Program
{
static void Main(string[] args)
{
string[] animalsEn = { "dog", "cow", "rabbit", "goat", "sheep", "mouse" };
string[] animalsKo = { "개", "소", "토끼", "염소", "양", "쥐" };
Display("정렬 전", animalsEn, animalsKo);
Array.Sort(animalsEn, animalsKo);
Display("정렬 후", animalsEn, animalsKo);
IComparer revCom = new ReverseComparer();
Array.Sort(animalsEn, animalsKo, revCom);
Display("내림차순 정렬 후", animalsEn, animalsKo);
}
static void Display(string cmt, string[] a1, string[] a2)
{
Console.WriteLine(cmt);
for(int i=0; i<a1.Length; i++)
{
Console.WriteLine(" [{0}]: {1,-8} {2,-8}", i, a1[i], a2[i]);
}
Console.WriteLine();
}
}
}
반응형
'C# > C#200제' 카테고리의 다른 글
[C#] 16일차 - 108. Queue<T> 컬렉션의 사용 방법 (0) | 2021.02.14 |
---|---|
[C#] 15일차 - 107. IComparable 인터페이스를 이용한 객체의 정렬 (0) | 2021.02.13 |
[C#] 15일차 - 105. 배열을 내림차순으로 정렬하는 방법 (0) | 2021.02.13 |
[C#] 15일차 - 104. List<T>와 배열의 정렬 (0) | 2021.02.13 |
[C#] 15일차 - 103. List<T> 컬렉션 (0) | 2021.02.13 |
@반나무 :: 반나무_뿌리
3년차 WPF 개발자입니다.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!