C# PROGRAM

ASP.NET(C#) MVCモデル入門~LINQを使ってデータを取得する

LINQを使ってデータを取得する

今回は、C# でのクエリ操作を行う上で必須となる LINQ の解説を行います。
LINQ(Language Integrated Query)とは、マイクロソフトの公式によると以下のような内容です。

統合言語クエリ (LINQ) では、言語レベルのクエリ機能と、表現力豊かな宣言コードの記述を可能にする高階関数 API が C# および Visual Basic に提供されます。

要するに、プログラム言語で標準に搭載されているクエリ(問い合わせ)機能ということになります。
なお、LINQ は、データベースだけではなく、ソースコード内の配列やリストなどにも利用できます。

LINQの使い方

LINQ の使い方ですが、2通りの記述方法があります。

  • クエリ構文
    • SQL文のように from、where、select などのキーワードを使う方法
  • メソッド構文
    • Where()、Select()などのメソッドをつなげて記述する方法

具体的な例を見ていきましょう。
以下のサンプルは、前回の記事で作成したプログラムを LINQ を使って、ID が 1 のデータを表示します。
まずは、クエリ構文の例です。

次に、メソッド構文の例です。

どちらを使うべきかは一概には言えませんが、マイクロソフトによればクエリ構文の方がより柔軟性があるため、クエリ構文を推奨しているようです。

メソッド構文で使用するメソッドの種類

メソッド構文で使用するメソッドには、多くの種類があります。
ここでは、良く使用するメソッドを一部抜粋します。

メソッド名内容
Average数値のシーケンスの平均を計算する
Contains指定した要素がシーケンスに格納されているかどうかを調べる
Countシーケンス内の要素数を返す
Firstシーケンスの最初の要素を返す
GroupByシーケンスの要素をグループ化する
join一致するキーに基づいて 2 つのシーケンスの要素を相互に関連付ける
Lastシーケンスの最後の要素を返す
Max値のシーケンスの最大値を返す
Min値のシーケンスの最小値を返す
OrderByシーケンスの要素を昇順に並べ替える
OrderByDescendingシーケンスの要素を降順に並べ替える
Range指定した範囲内の整数のシーケンスを生成する
Selectシーケンスの各要素を新しいフォームに射影する
Skipシーケンス内の指定された数の要素をバイパスし、残りの要素を返す
Sum数値のシーケンスの合計を計算する
Takeシーケンスの先頭から、指定された数の連続する要素を返す
Where述語に基づいて値のシーケンスをフィルター処理する

詳しい内容は、以下のマイクロソフト公式サイトを参照してください。

-C#, PROGRAM
-,