C#で使える「LINQ(言語統合クエリ)」とは?
LINQ(Language Integrated Query) は、C#でコレクションやデータベースのデータを、簡潔かつ直感的に操作できる機能です。
SQLのような書き方で、配列・リスト・データベース・XMLなどに対してクエリ(検索・並び替え・集計など)が行えます。
LINQの2つの書き方
- クエリ構文: SQL風の書き方
- メソッド構文: メソッドチェーン形式(ラムダ式を使用)
例:整数のリストから偶数だけを抽出
List numbers = new List { 1, 2, 3, 4, 5, 6 };
var evens1 = from n in numbers
where n % 2 == 0
select n; // クエリ構文
var evens2 = numbers.Where(n => n % 2 == 0); // メソッド構文
主なLINQメソッド一覧
Where
:条件で絞り込み
Select
:データを変換・抽出
OrderBy / OrderByDescending
:並び替え
GroupBy
:グループ分け
Sum / Count / Max / Min / Average
:集計
First / FirstOrDefault
:最初の要素を取得
Any / All
:条件に一致するか確認
LINQの使用例
string[] names = { "田中", "鈴木", "佐藤", "高橋" };
// "田" を含む名前を抽出
var results = names.Where(n => n.Contains("田"));
foreach (var name in results) {
Console.WriteLine(name); // → 田中
}
LINQ to Objectsとは?
配列やリストなど、メモリ上のデータに対して使うLINQを「LINQ to Objects」と呼びます。
ほかにも LINQ to SQL、LINQ to XML、LINQ to Entities(Entity Framework)などの種類があります。
LINQのメリット
- 簡潔で読みやすいコードが書ける
- 複雑な処理も1行で表現可能
- 型安全でコンパイル時にチェック可能
- データ操作の再利用性が高い
注意点
using System.Linq;
を忘れずに
- パフォーマンスに注意(大量データでは工夫が必要)
まとめ
LINQ(Language Integrated Query)は、C#のコード内で簡単にデータを検索・抽出・変換できる機能です。
SQL風のクエリ構文
と、メソッド構文(ラムダ式)
を使い分けることで、柔軟かつ強力なデータ処理が可能になります。
C#を使う上では欠かせない、非常に便利な技術です!