🌍 C# Study/C# 케이스 스터디
List<T> Sort
맨텀
2019. 12. 10. 00:31
LINQ의 OrderBy 이외에도,
List<T> 에서는 기본 제공하는 Sort 라는 메소드가 존재함.
public void TEST()
{
statModifers.Sort(CompareOrder);
}
private int CompareOrder(StatModifier a, StatModifier b)
{
if (a.Order < b.Order)
return -1;
else if (a.Order > b.Order)
return 1;
return 0;
}
Sort 속에는 Comparison이 될 수 있는 메소드가 들어가야한다.
statModifers.Sort(delegate (StatModifier a, StatModifier b)
{
if (a.Order < b.Order)
return -1;
else if (a.Order > b.Order)
return 1;
return 0;
});
외부에서 함수를 선언하지않고 위와 같이 delegate로도 가능하다.
List<T> Sort 는 같은 데이터가 있다면 두개의 순서가 바뀔 수 있다고한다.
LINQ OrderBy 는 같은 데이터가 있더라도 순서가 바뀌지않는다.