LINQ는 언어 통합 쿼리로 알려져 있으며 .NET 3.5 및 Visual Studio 2008에 제공됩니다. LINQ의 장점은 .NET 언어(예: C#, VB.NET 등)에 쿼리를 생성할 수 있는 기능을 제공한다는 것입니다. 정보 소스에서 정보를 복구합니다. 예를 들어, 프로그램은 학부 기록에서 데이터를 가져오거나 작업자 기록 등을 가져올 수 있습니다. 이전에는 이러한 종류의 정보가 애플리케이션과 다른 데이터 세트에 저장되어 있었고 SQL, XML 등과 같은 종류의 정보에 액세스하기 위해 다양한 종류의 질문 언어를 배우고 싶었습니다. 또한 C# 언어나 다른 .NET 언어를 사용하여 질문을 만들 수 없습니다.
자바 배열 반환
이러한 종류의 문제를 해결하기 위해 Microsoft는 LINQ를 만들었습니다. LINQ 실행 가능한 정보 소스에 대한 질문을 생성하기 위해 C# 또는 .NET 방언에 하나 이상의 용량을 연결합니다. 게다가 가장 좋은 점은 어떤 정보 소스를 활용하든 질문을 만드는 데 사용되는 문장 구조가 유사하다는 것입니다. 즉, 소셜 데이터 세트에 있는 정보에 대해 문의하는 문법이 질문 정보를 만드는 데 사용되는 문법과 동일하다는 것입니다. 클러스터에 보관하면 SQL이나 .NET이 아닌 다른 언어 구성 요소를 활용해야 하는 강력한 이유가 있습니다. 마찬가지로 SQL, XML 레코드, ADO.NET, 웹 관리 및 기타 정보 기반과 함께 LINQ를 활용할 수 있습니다.
C#에서는 LINQ를 System에서 사용할 수 있습니다. Linq 네임스페이스. LINQ 질문을 유지하는 다양한 종류의 클래스와 기술을 제공합니다. 이 네임스페이스에서:
- Enumerable 클래스는 IEnumerable을 실행하는 개체에 대해 작동하는 표준 쿼리 연산자를 보유합니다.
- queryable 클래스는 IQueryable을 실행하는 객체에 대해 작업하는 표준 조회 관리자를 보유합니다.
예를 들어 : SQL은 데이터베이스에서 데이터를 저장하고 복구하는 데 사용되는 구조화된 쿼리 언어입니다. 마찬가지로 LINQ는 조직화된 쿼리 문장 구조입니다. LINQ는 기본 C#입니다. XML, 문서, 컬렉션, ADO.Net DataSet, 웹 서비스, MS SQL Server 및 다양한 데이터베이스 서버와 같은 다양한 종류의 소스에서 정보를 복구하는 데 사용됩니다.
LINQ의 사용
- LINQ를 만드는 주요 이유는 C# 3.0 이전에는 for 루프, foreach 루프 또는 대리자를 사용하여 컬렉션을 탐색하여 특정 개체를 추적했지만 개체를 찾는 데 이러한 전략을 사용하는 것의 단점은 실제로 더 지루하고 프로그램을 덜 명확하게 만드는 객체를 찾기 위해 엄청난 양의 코드를 작성하십시오. 따라서 이러한 문제를 해결하기 위해 몇 줄의 라인에서 유사한 활동을 수행하고 코드를 명확하게 만드는 LINQ가 제공됩니다. 또한 다른 프로젝트에 유사한 코드를 포함시킬 수 있습니다.
- 또한 컴파일 시 전체 정렬 검사를 제공합니다. 이는 런타임 시 오류를 구별하는 데 도움이 되므로 의심할 여지 없이 오류를 제거할 수 있습니다.
- LINQ는 SQL보다 간단하고 매우 체계적이며 중요한 수준의 언어입니다.
- 마찬가지로 C# 배열 및 컬렉션과 함께 LINQ를 활용할 수 있습니다. 이는 오래된 문제를 강력한 방법으로 처리할 수 있는 또 다른 지침을 제공합니다.
- LINQ의 도움으로 XML, SQL, 엔터티, 개체 등과 같은 데이터 소스로 작업할 수 있다는 것은 의심의 여지가 없습니다. 단일 쿼리로 데이터베이스를 사용할 수 있으므로 다양한 종류의 언어를 배워야 합니다.
- LINQ는 쿼리 식, 익명 형식, 암시적으로 형식화된 변수, Lambda 식, 개체 및 컬렉션 이니셜라이저, 확장 메서드를 유지합니다.
LINQ 쿼리는 두 가지 방법으로 사용할 수 있습니다.
LINQ 쿼리 구문 구조는 .NET System rendition 3.5 이상을 특징으로 하는 쿼리 키워드로 구성됩니다. 이를 통해 소프트웨어 엔지니어나 개발자는 요율을 활용하지 않고도 코드(C# 또는 VB.NET)에서 SQL 설계와 매우 유사한 방향을 구성할 수 있습니다. 이는 질문 조음 문법이라는 사실에 비추어 비슷한 방식으로 알려져 있습니다. LINQ에서는 다음 전략을 활용하여 IEnumerable 시리즈 또는 IQueryable 정보 소스에 대한 조회를 구성할 수 있습니다.
1. 쿼리 구문:
LINQ 쿼리 언어 구문은 from 키워드로 시작하고 Select 또는 GroupBy 키워드로 끝납니다. from 키워드 이후에는 필요에 따라 그룹화, 필터링 등 다양한 종류의 표준 쿼리 작업을 활용할 수 있습니다. LINQ에서는 50가지의 고유한 표준 질문 관리자 유형에 액세스할 수 있습니다.
쿼리 구문 작성 단계:
1 단계: 첫 번째 단계에서는 코드에 System.Linq 네임스페이스를 추가해야 합니다.
i.e., using System.Linq;
2 단계: 두 번째 단계에서는 작업을 수행해야 하는 데이터 원본을 만들어야 합니다.
Ex: List list = new List() { ' Hii ', ' Welcome to JavaTpoint ', ' The topic is LINQ.' ' Any Queries ' };
3단계: 세 번째 단계에서는 select, from 등과 같은 키워드를 사용하여 데이터 원본에 대한 쿼리를 만들어야 합니다.
Ex: var r = from l in list where l.Contains(' Hii ') select l;
여기서 r은 쿼리 연결 결과를 저장하는 쿼리 변수입니다. 양식 절은 정보 소스(예: 목록)를 결정하는 데 사용됩니다. 여기서 조건은 채널에 적용됩니다. 즉, l.Contains(' Hii ') 및 select 문은 가져온 항목의 종류를 제공합니다. 또한 l은 도달 변수입니다.
4단계: 마지막 단계는 for Each 루프를 사용하여 쿼리를 실행하는 것입니다.
EX: foreach(var i in r) { Console.WriteLine(i); }
쿼리 구문에 대한 예제 프로그램:
Java에서 문자열을 int로 캐스팅하는 방법
// program to create LINQ query using Query Syntax // step-1: Adding the System.Linq namespace in the code. using System; using System.Linq; using System.Collections.Generic; class HelloWorld { // Main Method static public void Main() { // Step-2: creating the data source on which we have to perform the operations List list = new List() { ' Hii JavaTpoint', ' Welcome to JavaTpoint ', ' The topic is LINQ ', ' Any Queries ' }; // step-3: Creating the LINQ query for the data source using a keyword like select, from, etc. var r = from l in list where l.Contains(' JavaTpoint') select l; // In this will print only the sentence which contains JavaTpoint word // step-4: Executing LINQ Query using the for each loop foreach(var i in r) { Console.WriteLine(i); } } }
산출:
2. 메소드 구문
LINQ에서는 메서드 구문을 사용하여 Enumerable 또는 Queryable 정적 클래스에 대한 확장 메서드를 호출합니다. 메소드 확장 구문(Method Extension Syntax) 또는 Fluent라고도 합니다. 그럼에도 불구하고 컴파일러는 일반적으로 컴파일 타임에 메서드 구문 구조의 쿼리 구문을 변경합니다. Where, Join, Max, Min, Avg, GroupBy Select 등과 같은 표준 쿼리 연산자를 호출할 수 있습니다. 쿼리 구문을 사용하지 않고도 직접 호출할 수 있습니다.
1 단계: 첫 번째 단계에서는 코드에 System.Linq 네임스페이스를 추가해야 합니다.
i.e., using System.Linq;
2 단계: 두 번째 단계에서는 작업을 수행해야 하는 데이터 원본을 만들어야 합니다.
Ex: List list = new List() { ' Hii ', ' Welcome to JavaTpoint ', ' The topic is LINQ ' ' Any Queries ' };
3단계: 이제 Enumerable 또는 Queryable 정적 클래스에서 제공하는 메서드를 사용하여 쿼리를 만듭니다.
Ex: var r = list.Where(a=> a.Contains(' JavaTpoint '));
여기서 r은 쿼리 연결 결과를 저장하는 쿼리 변수입니다. 양식 절은 정보 소스(예: 목록)를 결정하는 데 사용됩니다. 여기서 조건은 채널에 적용됩니다. 즉, l.Contains(' Hii ') 및 select 문은 가져온 항목의 종류를 제공합니다. 또한 l은 도달 변수입니다.
4단계: 마지막 단계는 for Each 루프를 사용하여 쿼리를 실행하는 것입니다.
EX: foreach(var i in r) { Console.WriteLine(i); }
메소드 구문에 대한 예제 프로그램:
// program to create LINQ query using Method syntax // step-1: Adding the System.Linq namespace in the code. using System; using System.Linq; using System.Collections.Generic; class HelloWorld { // Main Method static public void Main() { // Step-2: creating the data source on which we have to perform the operations List list = new List() { ' Hii JavaTpoint', ' Welcome to JavaTpoint ', ' The topic is LINQ ', ' Any Queries ' }; //step-3 creating the query using the methods provided by the Enumerable or Queryable static classes var r = list.Where(a=> a.Contains(' JavaTpoint ')); // In this will print only the sentence which contains JavaTpoint word // Executing LINQ Query using the for each loop foreach(var i in r) { Console.WriteLine(i); } } }
산출:
LINQ의 장점
- 클라이언트는 대체 유형의 데이터 형식이나 데이터 소스에 대해 새로운 쿼리 언어를 배울 필요가 없습니다.
- 코드의 명확성을 높여줍니다.
- 쿼리를 재사용할 수 있습니다.
- 어셈블할 때 객체의 유형 검사를 제공합니다.
- 기존 컬렉션에 IntelliSense를 제공합니다.
- 컬렉션이나 배열과 함께 활용되는 경향이 있습니다.
- LINQ는 순서, 그룹화, 필터링 및 정렬을 유지합니다.
- C# 언어와 조화를 이루므로 디버깅이 간단해집니다.
- 이는 SQL 데이터를 XML 데이터로 변경하는 것과 같이 의심할 여지 없이 하나 이상의 데이터 유형을 다른 데이터 유형으로 변경할 수 있음을 시사하는 간단한 변경 사항을 제공합니다.