오보에블로그
[C#API] Comparison<T> 본문
728x90
Comparision<T>
- 정렬 메소드중 오버로드 된것중에 하나로는
List<T>.Sort(Comparision<T>)
가 있다. Comparision<T>
는delegate
로 정의된 대리자로,delegate int Comparison<in T>(T x, T y);
로Comparison
에는x
와y
를 받아서x
가y
보다 작으면 0보다 작은 정수를,x
와y
가 같으면 0을,x
가y
보다 크면 1 을 리턴해야하는 함수를 할당해야한다.- 이걸 쓰면 크고 작음의 기준을 커스텀하게 작성할 수 있어서 편리하다.
예시
public string[] solution(string[] strings, int n)
{
List<string> stringList = new List<string>();
stringList.AddRange(strings);
stringList.Sort((x, y) =>
{
if (x[n] < y[n])
return -1;
else if (x[n] > y[n])
return 1;
else
{
int camparer = x.CompareTo(y);
if (camparer < 0)
return -1;
else if (camparer == 0)
return 0;
else
return 1;
}
}
);
return stringList.ToArray();
}
728x90
'C++ & C# > C#' 카테고리의 다른 글
[C#API] 알아두면 유용한 IEnumerable 관련 메소드 (0) | 2021.12.16 |
---|---|
[C#API] IEnumerator & IEnumerable (0) | 2021.12.16 |
[C# API] String Builder (0) | 2021.10.21 |
[c#] Longest Common Substring (0) | 2019.08.04 |
[c#] TimeOutException이 catch되지 않을때 (0) | 2019.08.04 |