C#과 같은 .NET 언어에서 데이터 소스와 상호 작용하는 간편한 방법을 제공하는 통합 쿼리 기능이다.
LINQ는 쿼리를 데이터 소스에 통합하여 객체 지향 프로그래밍과 관계형 데이터베이스 쿼리 간의 격차를 줄여준다.
데이터베이스, 컬렉션, XML 등 다양한 데이터 소스에서 데이터를 쿼리할 수 있으며, 다양한 연산자를 사용하여 쿼리 결과를 필터링, 정렬, 그룹화 등 다양하게 처리할 수 있다.
1.LINQ to Objects: 메모리에 있는 컬렉션(예: 배열, 리스트 등)을 쿼리할 때 사용된다.
2.LINQ to SQL: 관계형 데이터베이스(SQL Server 등)를 쿼리할 때 사용된다.
3.LINQ to XML: XML 데이터를 쿼리할 때 사용된다.
4.LINQ to Entities: Entity Framework를 사용하여 데이터베이스를 쿼리할 때 사용된다.
1.데이터 소스: 쿼리할 데이터가 저장된 데이터 소스를 지정한다. 예를 들어, 배열, 리스트, 컬렉션, 데이터베이스 테이블, Json Object 등을 데이터 소스로 사용할 수 있다.
2.쿼리 만들기: LINQ에서 쿼리는 일반적으로 '확장 메서드'와 '쿼리 식'으로 만든다. 쿼리 식은 SQL 쿼리와 유사한 구문을 사용하여 쉽게 작성할 수 있다. 예를 들어, SELECT, FROM, WHERE, ORDER BY 등과 같은 구문이 사용된다.
3.결과 처리: LINQ 쿼리를 실행하여 결과를 가져온다. C#에서는 쿼리를 실행할 때 LINQ to Objects, LINQ to XML, LINQ to SQL 등 다양한 방식으로 실행할 수 있다.
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// 쿼리 구문을 사용한 LINQ 쿼리
var evenNumbers = from n in numbers
where n % 2 == 0
select n;
foreach (var num in evenNumbers)
{
Console.WriteLine(num); // 출력: 2, 4, 6, 8, 10
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// 메서드 구문을 사용한 LINQ 쿼리
var evenNumbers = numbers.Where(n => n % 2 == 0);
foreach (var num in evenNumbers)
{
Console.WriteLine(num); // 출력: 2, 4, 6, 8, 10
}
}
}



