반응형
1.LINQ의 GroupBy메소드는 컬렉션(List, Array, Dictionary)의 요소를 그룹으로 매칭할 경우에 사용합니다.
샘플코드로는 대륙별로 국가의 점수를 표시할경우를 준비했습니다.
//샘플클래스
class Test
{
public string GroupName { get; set; }
public string ContryName { get; set; }
public int Points { get; set; }
}
static void Main(string[] args)
{
//GroupBy, OrderBy에 사용될 샘플데이터
var result = new List<Test>() {
new Test {GroupName = "Asia", ContryName = "South Korea", Points = 90},
new Test {GroupName = "Europe", ContryName = "Germany", Points = 80,},
new Test {GroupName = "North America", ContryName = "UnIted States", Points = 70},
new Test {GroupName = "Asia", ContryName = "Malaysia", Points = 60},
new Test {GroupName = "Europe", ContryName = "Spain", Points = 50},
new Test {GroupName = "Africa", ContryName = "Nigeria", Points = 80},
new Test {GroupName = "Asia", ContryName = "Singapore", Points = 70},
};
//대륙별로 그룹매칭
var query = result.GroupBy(x => x.GroupName);
//그룹매칭 결과 루프
foreach (var group in query)
{
//대륙별로 나눠서 표시
Console.WriteLine(" " + group.Key);
//해당하는 대륙별 국가정보 표시
foreach (var item in group)
{
Console.WriteLine($" {{0}}:{{1}}Points", item.ContryName, item.Points);
}
Console.WriteLine("");
}
Console.ReadKey();
}
결과값
2.LINQ의 OrderBy메소드는 컬렉션(List, Array, Dictionary)의 요소의 정렬을 정할때 사용합니다.
샘플코드로는 국가별 점수의 오름차순과 내림차순을 준비했습니다.
//샘플클래스
class Test
{
public string GroupName { get; set; }
public string ContryName { get; set; }
public int Points { get; set; }
}
static void Main(string[] args)
{
//GroupBy, OrderBy에 사용될 샘플데이터
var result = new List<Test>() {
new Test {GroupName = "Asia", ContryName = "South Korea", Points = 90},
new Test {GroupName = "Europe", ContryName = "Germany", Points = 80,},
new Test {GroupName = "North America", ContryName = "UnIted States", Points = 70},
new Test {GroupName = "Asia", ContryName = "Malaysia", Points = 60},
new Test {GroupName = "Europe", ContryName = "Spain", Points = 50},
new Test {GroupName = "Africa", ContryName = "Nigeria", Points = 80},
new Test {GroupName = "Asia", ContryName = "Singapore", Points = 70},
};
// 점수별 오림차순
var query2 = result.OrderBy(x => x.Points);
Console.WriteLine(" Query2");
foreach (var item in query2)
{
Console.WriteLine($" ({{0}}){{1}}:{{2}}Points", item.GroupName, item.ContryName, item.Points);
}
Console.WriteLine("");
// 점수별 내림차순
var query3 = result.OrderByDescending(x => x.Points);
Console.WriteLine(" Query3");
foreach (var item in query3)
{
Console.WriteLine($" ({{0}}){{1}}:{{2}}Points", item.GroupName, item.ContryName, item.Points);
}
Console.WriteLine("");
Console.ReadKey();
}
결과값
반응형
'C#' 카테고리의 다른 글
LINQ Distinct, Skip, Take메서드 사용법 (0) | 2021.07.21 |
---|---|
LINQ Any, All메서드 사용법 (0) | 2021.07.18 |
LINQ Select, Where메서드 사용법 (2) | 2021.07.15 |
LINQ 쿼리 작성하기 (0) | 2021.07.12 |
LINQ사용에 대한 정보(기본사항) (0) | 2021.07.11 |
댓글