LINQ(Language-Integrated Query)란?
C# 언어에 직접 쿼리 기능을 통합하는 방식으로 기반으로 하는 기술 집합 이름입니다.
즉 별도의 과정이나 IntelliSense의 지원없이 간단한 문자열로 표현할 수 있고 언어 키워드 및 친숙한 연산자를 사용해서 강력한 형식의 개체 컬렉션에 대해 쿼리를 작성할 수 있습니다.
class LINQQueryExpressions
{
static void Main()
{
// Specify the data source.
int[] scores = new int[] { 97, 92, 81, 60 };
// Define the query expression.
IEnumerable<int> scoreQuery =
from score in scores
where score > 80
select score;
// Execute the query.
foreach (int i in scoreQuery)
{
Console.Write(i + " ");
}
}
}
// Output: 97 92 81
위와 같은 형태로 쿼리를 실행할 수 있고 C#의 문법에 따라서 조금 더 직관적으로 사용이 가능합니다.
class CompareLists
{
static void Main()
{
// Create the IEnumerable data sources.
string[] names1 = System.IO.File.ReadAllLines(@"../../../names1.txt");
string[] names2 = System.IO.File.ReadAllLines(@"../../../names2.txt");
// Create the query. Note that method syntax must be used here.
IEnumerable<string> differenceQuery =
names1.Except(names2);
// Execute the query.
Console.WriteLine("The following lines are in names1.txt but not names2.txt");
foreach (string s in differenceQuery)
Console.WriteLine(s);
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit");
Console.ReadKey();
}
}
/* Output:
The following lines are in names1.txt but not names2.txt
Potra, Cristina
Noriega, Fabricio
Aw, Kam Foo
Toyoshima, Tim
Guy, Wey Yuan
Garcia, Debra
*/
위와 같은 형태로 두 데이터간의 차집합 혹은 합집합을 구할 수 있고, 정규식을 결합하거나 특정 단어가 나오는 횟수를 세는 등의 로직을 쿼리 형태로 간단하게 구현이 가능합니다.
from, where, select등으로 실행이 가능하고 foreach문을 사용할때는 IEnumerable 또는 IEnumerable<T>이 필요합니다. IEnumerable<T> 또는 제네릭 IQueryable<T> 같은 형태로 사용되어야 합니다.
Count, Max, Average 및 First등의 집계 작업이 가능합니다.
그리고 필터링, 순서 지정, 그룹화, 조인, 프로젝션또한 가능하여 이를 활용하면 효율적으로 프로그램의 작성이 가능할 것입니다.
'Languege > C# & ASP.NET' 카테고리의 다른 글
[ASP.NET MVC] Controller 에서 View 로 데이터 전달 (0) | 2022.02.10 |
---|---|
[ASP.NET MVC] Razor Syntax 정리 (0) | 2022.02.10 |
프로 ASP.NET 1~6장 후기 (0) | 2022.01.06 |
ASP .NET 시작하기 (0) | 2022.01.03 |