10章LINQ
統合言語クエリ(LINQ)は、情報セットを扱うための非常に強力なC#言語機能群です。複数のデータを扱う必要があるすべてのアプリケーション(つまり、ほとんどすべてのアプリケーション)で役立ちます。LINQのもともとの目的の1つはリレーションナルデータベースへの直感的なアクセスを可能にすることでしたが、それ以外にも、多くの種類の情報に対して使うことができます。例えば、メモリ中のオブジェクトモデル、HTTPによる情報サービス、JSON、XMLドキュメントなどにも使うことができます。
LINQは1つの機能というわけではありません。連携して動作するいくつかの言語要素によって構成されています。最も顕著なLINQに関係する言語機能は、クエリ式です。クエリ式はデータベースクエリに似た形の式ですが、プレーンオールドオブジェクト(plain old object)などのサポートされているあらゆるソースに対してクエリを実行できます。このあと説明するように、クエリ式はラムダ、拡張メソッド、式オブジェクトモデルなどの他の言語機能とも非常に深い関係があります。
言語によるサポートはLINQ全体の半分でしかありません。LINQには、「LINQ演算子」と呼ばれるクエリプリミティブの基本セットを実装するクラスライブラリが必要です。異なる種類のデータに対しては、それぞれ専用の実装が必要になります。また、特定の型の情報に対する演算子群はLINQプロバイダと呼ばれます(これらのクラスライブラリは、LINQをサポートしているVisual BasicやF#でも使用できます)。Microsoftは複数のプロバイダを用意しており、.NETクラスライブラリに組み込まれているものもあれば、別のNuGetパッケージとして利用できるものもあります。例えば、データベースを扱うためのオブジェクトリレーショナルマッピングシステムのEntity ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access