LINQ は統合言語クエリとして知られており、.NET 3.5 および Visual Studio 2008 で提供されています。LINQ の優れた点は、.NET 言語 (C#、VB.NET など) に問い合わせを作成する機能を提供することです。情報源から情報を復元します。たとえば、プログラムは、代役レコードからデータを取得したり、作業者レコードなどを取得したりする場合があります。以前は、この種の情報はアプリケーションとは別のデータセットに保存されていたため、SQL、XML など、この種の情報にアクセスするためにさまざまな種類の質問言語を学習する必要がありました。さらに、C# 言語やその他の .NET 言語を使用して質問を作成することはできません。
データリンク層プロトコル
このような種類の問題を克服するために、Microsoft は LINQ を作成しました。これは、もう 1 つの能力を C# または .NET 方言に接続して、LINQ の実行可能な情報ソースに対する質問を作成します。さらに、最も良い点は、どのような種類の情報源が利用されているかに関係なく、質問を作成するために使用される文の構造が類似していることです。これは、ソーシャル データセット内の情報について問い合わせる文法が、質問情報を作成するために使用される文法と同じであることを意味します。クラスターに配置するには、SQL またはその他の非 .NET 言語コンポーネントを使用する必要があるやむを得ない理由があります。同様に、SQL、XML レコード、ADO.NET、Web 管理、その他の情報ベースで LINQ を利用できます。
C# では、LINQ はシステムで使用できます。 Linq 名前空間。 LINQ の質問をサポートするさまざまな種類のクラスとテクニックを提供します。この名前空間では次のようになります。
- Enumerable クラスは、IEnumerable を実行するオブジェクトに対して機能する標準クエリ演算子を保持します。
- クエリ可能クラスは、IQueryable を実行するオブジェクトを操作する標準的なクエリ管理者を保持します。
例えば : SQL は、データベースのデータの保存と回復に使用される構造化クエリ言語です。同様に、LINQ は組織化されたクエリ センテンス構造です。 LINQ は基本的な C# です。 XML、ドキュメント、コレクション、ADO.Net DataSet、Web サービス、MS SQL Server、さまざまなデータベース サーバーなど、さまざまな種類のソースから情報を回復するために利用されます。
LINQの使用法
- LINQ を作成する主な理由は、C# 3.0 より前では、特定のオブジェクトを追跡するためにコレクションを走査するために for ループ、for each ループ、またはデリゲートを使用していましたが、オブジェクトを見つけるためにこれらの戦略を使用することのデメリットは、本当に必要なことです。オブジェクトを見つけるために膨大な量のコードを作成する必要がありますが、これはさらに面倒であり、プログラムの明瞭さを損ないます。そこで、これらの問題を解決するために、同様のアクティビティを数行で実行し、コードを明確にする LINQ が登場しました。さらに、さまざまなプロジェクトに同様のコードを含めることができます。
- さらに、コンパイル時に完全なソートチェックを行います。これは実行時にエラーを区別するのに役立ち、間違いなくエラーを排除できます。
- LINQ は、SQL よりも簡単で、非常に整理されており、重要なレベル言語です。
- 同様に、C# の配列とコレクションで LINQ を利用できます。これは、古い問題に強力な方法で対処するための別のガイダンスを提供します。
- LINQ の助けを借りて、XML、SQL、エンティティ、オブジェクトなどのデータ ソースを操作できることは間違いありません。単一のクエリでデータベースを操作できるため、さまざまな種類の言語を学習する必要があります。
- LINQ は、クエリ式、匿名型、暗黙的に型指定された変数、ラムダ式、オブジェクトとコレクションの初期化子、および拡張メソッドをサポートします。
LINQ クエリは 2 つの方法で使用できます
LINQ クエリ構文構造は、.NET システム レンディション 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: 2 番目のステップでは、操作を実行する必要があるデータ ソースを作成する必要があります。
Ex: List list = new List() { ' Hii ', ' Welcome to JavaTpoint ', ' The topic is LINQ.' ' Any Queries ' };
ステップ-3: 3 番目のステップでは、select、from などのキーワードを使用してデータ ソースのクエリを作成する必要があります。
Ex: var r = from l in list where l.Contains(' Hii ') select l;
ここで、 r はクエリのアーティキュレーションの結果を格納するクエリ変数です。 form 句は情報ソース、つまりリストを決定するために利用され、条件がチャネルに適用される場所、つまり l.Contains(' Hii ') と select ステートメントは戻されたものの種類を与えます。さらに、l は到達変数です。
ステップ-4: 最後のステップでは、for each ループを使用してクエリを実行します。
EX: foreach(var i in r) { Console.WriteLine(i); }
クエリ構文のプログラム例:
// 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 静的クラスの展開メソッドを呼び出します。メソッド拡張構文またはフルエントとも呼ばれます。それにもかかわらず、コンパイラは通常、コンパイル時にメソッド構文構造内のクエリ構文を変更します。 Where、Join、Max、Min、Avg、GroupBy Select などの標準のクエリ演算子を呼び出すことができます。クエリ構文を使用せずに直接呼び出すことができます。
ステップ1: 最初のステップでは、コードに System.Linq 名前空間を追加する必要があります。
i.e., using System.Linq;
ステップ2: 2 番目のステップでは、操作を実行する必要があるデータ ソースを作成する必要があります。
Ex: List list = new List() { ' Hii ', ' Welcome to JavaTpoint ', ' The topic is LINQ ' ' Any Queries ' };
ステップ-3: 次に、Enumerable または Queryable 静的クラスによって提供されるメソッドを使用してクエリを作成します。
Javaで文字をintに変換する
Ex: var r = list.Where(a=> a.Contains(' JavaTpoint '));
ここで、 r はクエリのアーティキュレーションの結果を格納するクエリ変数です。 form 句は情報ソース、つまりリストを決定するために利用され、条件がチャネルに適用される場所、つまり 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 データに変更するのと同様に、複数のデータ型を別のデータ型に間違いなく変更できることを示唆する簡単な変更を提供します。