본문 바로가기
프로그래밍/C# LINQ

C# Linq - Enumerable.OrderBy()

by bantomak 2023. 6. 20.
반응형

OrderBy()로 정렬하기

OrderBy()를 호출하면 해당하는 데이터를 기준으로 오름차순(Ascending) 정렬한다.

내림차순으로 정렬이 필요한 경우 내림차순(OrderByDescending)으로 메서드를 호출한다.

 

public class Program
{
public class Student
{
public string name;
public int score;
public int spendTime;
}
public static void Main()
{
List<Student> students = new()
{
new () { name = "Kelly", score = 50, spendTime = 30 },
new () { name = "Brown", score = 70, spendTime = 20 },
new () { name = "James", score = 20, spendTime = 80 },
new () { name = "Cathy", score = 80, spendTime = 70 }
};
var list = students.OrderBy(x => x.score).ToList();
foreach (Student student in list)
{
Console.WriteLine($"OrderBy - Name : {student.name}, Score : {student.score}, TimeSpend : {student.spendTime}");
}
var descendingList = students.OrderByDescending(x => x.score).ToList();
foreach (Student student in descendingList)
{
Console.WriteLine($"OrderByDescending - Name : {student.name}, Score : {student.score}, TimeSpend : {student.spendTime}");
}
}
}
view raw orderby.cs hosted with ❤ by GitHub

 

output
Score를 기준으로 오름차순, 내림차순 정렬을 적용한 결과

 

ThenBy()를 추가해서 세부정렬하기

public class Program
{
public class Student
{
public string name;
public int score;
public int spendTime;
}
public static void Main()
{
List<Student> students = new()
{
new () { name = "Kelly", score = 50, spendTime = 30 },
new () { name = "Brown", score = 70, spendTime = 20 },
new () { name = "James", score = 50, spendTime = 80 },
new () { name = "Cathy", score = 80, spendTime = 70 }
};
var list = students.OrderBy(x => x.score).ThenBy(y => y.spendTime).ToList();
foreach (Student student in list)
{
Console.WriteLine($"OrderBy - Name : {student.name}, Score : {student.score}, TimeSpend : {student.spendTime}");
}
var descendingList = students.OrderByDescending(x => x.score).ThenByDescending(y => y.spendTime).ToList();
foreach (Student student in descendingList)
{
Console.WriteLine($"OrderByDescending - Name : {student.name}, Score : {student.score}, TimeSpend : {student.spendTime}");
}
}
}
view raw thenby.cs hosted with ❤ by GitHub

 

ThenBy를 추가해서 OrderBy가 동일한 경우 그 안에서 우선순위로 정렬하도록 설정

'프로그래밍 > C# LINQ' 카테고리의 다른 글

C# Linq - Enumerable.Range()  (0) 2023.12.18
C# Linq - Enumerable.Aggregate()  (19) 2023.06.26
C# Select vs SelectMany  (22) 2023.06.19
C# Linq - Enumerable.Repeat()  (26) 2023.06.13
C# Linq - Enumerable.Join()  (12) 2023.04.20

댓글