반응형
C#에서 LINQ 쿼리를 작성방법은 아래와 같습니다.
①쿼리 구문
②메서드 구문
③쿼리와 메서드를 구문을 혼용
첫번째 쿼리구문은 이용해서 쿼리식을 작성하는 방법을 설명하겠습니다.
// Query #1.
List<int> numbers = new List<int>() { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0, 11, 10, 12 };
IEnumerable<int> filteringQuery =
from num in numbers
where num < 3 || num > 7
select num;
Console.WriteLine(" Query1 Result");
foreach (int number in filteringQuery)
{
Console.WriteLine(" " + number);
}
// Query #2.
IEnumerable<int> orderingQuery =
from num in numbers
where num < 3 || num > 7
orderby num ascending
select num;
Console.WriteLine(" Query2 Result");
foreach (int number in orderingQuery)
{
Console.WriteLine(" " + number);
}
// Query #3.
string[] groupingQuery = { "carrots", "cabbage", "broccoli", "beans", "barley", "cat", "dog" };
IEnumerable<IGrouping<char, string>> queryFoodGroups =
from item in groupingQuery
group item by item[0];
Console.WriteLine(" Query3 Result");
foreach (var animal in queryFoodGroups)
{
Console.WriteLine(" " + animal.First());
}
결과값
두번째로는 메소드를 호출해서 작성하는법으로 일반적으로는 숫자를 반환하는 Sum, Max, Min, Average등이 있습니다.
List<int> numbers1 = new List<int>() { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
List<int> numbers2 = new List<int>() { 15, 14, 11, 13, 19, 18, 16, 17, 12, 10 };
// Query #4.
double average = numbers1.Average();
Console.WriteLine(" Query4 Result");
Console.WriteLine(" average = " + average);
// Query #5.
double sum = numbers2.Sum();
Console.WriteLine(" Query5 Result");
Console.WriteLine(" sum = " + sum);
// Query #6.
double max = numbers1.Max();
Console.WriteLine(" Query6 Result");
Console.WriteLine(" max = " + max);
// Query #7.
double min = numbers2.Min();
Console.WriteLine(" Query7 Result");
Console.WriteLine(" min = " + min);
결과값
마지막으로 쿼리와 메서드의 혼합으로 작성하는 법을 알아보도록 하겠습니다.
// Query #8.
int numCount1 = (from num in numbers1 where num < 3 || num > 7
select num).Count();
IEnumerable<int> numbersQuery =
from num in numbers1
where num < 3 || num > 7
select num;
int numCount2 = numbersQuery.Count();
Console.WriteLine(" Query8 Result");
Console.WriteLine(" count = " + numCount2);
결과값
반응형
'C#' 카테고리의 다른 글
LINQ Distinct, Skip, Take메서드 사용법 (0) | 2021.07.21 |
---|---|
LINQ Any, All메서드 사용법 (0) | 2021.07.18 |
LINQ GroupBy, OrderBy메소드 사용법 (0) | 2021.07.17 |
LINQ Select, Where메서드 사용법 (2) | 2021.07.15 |
LINQ사용에 대한 정보(기본사항) (0) | 2021.07.11 |
댓글