English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
LINQ(言語統合クエリ)は、異なるソースおよび形式からデータを検索するためのC#およびVB.NETの統一クエリ構文です。C#またはVBに統合されているため、プログラミング言語とデータベース間の不適合を解消し、異なるデータソースタイプに単一のクエリインターフェースを提供します。
例えば、SQLはデータベース内のデータを保存および検索するための構造化クエリ言語です。同様に、LINQはC#およびVB.NETに統合された構造化クエリ構文で、集合、ADO.Net DataSet、XML Docs、Webサービス、MS SQL Serverおよび他のデータベースなどの異なるデータソースからデータを検索するために使用されます。
LINQクエリは結果をオブジェクトとして返します。これにより、結果セット上でオブジェクト指向のメソッドを使用することができ、異なる形式の結果をオブジェクトに変換する必要がなくなります。
以下の例では、含んでいる「a」の配列からすべての文字列を取得するシンプルなLINQクエリを示します。
// データソース string[] names = {"Bill", "Steve", "James", "Mohan"}; // LINQクエリ var myLinqQuery = from name in names where name.Contains('a') select name; // クエリ実行 foreach(var name in myLinqQuery) Console.Write(name + " ");
上記の例では、文字列配列の名前がデータソースです。以下は、変数myLinqQueryに割り当てられたLINQクエリです。
from name in names where name.Contains('a') select name;
上記のクエリはLINQのクエリ構文を使用しています。詳細については、「クエリ構文」の章を参照してください。
LINQクエリを実行する前に、その結果は得られません。LINQクエリは、さまざまな方法で実行できますが、ここではmyLinqQueryに格納されているクエリを実行するためにforeachループを使用します。foreachループはデータソースに対してクエリを実行し、結果セットを取得し、結果セット上でイテレートします。
したがって、LINQクエリは、それが配列、コレクション、XML、または他のデータベースであるかどうかに関わらず、必ずデータソースをクエリする必要があります。LINQクエリを書いた後、結果を得るために実行する必要があります。
次の章で、LINQを使用する理由を学びます。