C#のLINQ入門|覚えておくと便利な基本構文とコレクション操作
var result = numbers.Where(n => n > 10);
LINQとは何か
LINQ(Language Integrated Query)は、
コレクションを問い合わせるように操作できる仕組みです
var result = numbers.Where(n => n > 10);この1行で
「10より大きい数だけ取り出す」
という処理が書けています
for や foreach を使わずに、意図がそのままコードになるのが最大の魅力です
LINQを使う準備
LINQを使うには、次の using が必要です
using System.Linq;これを忘れると、LINQメソッドが使えないので注意です
LINQの基本的な考え方
LINQは
「元のコレクションから、条件に合うものを取り出す」
という流れで考えます
- 元データ
- 条件や変換
- 結果
この順番を意識すると、読みやすくなります
Where|条件で絞り込む
一番よく使われるのが Where です
List<int> numbers = new List<int> { 5, 10, 15, 20 };
var result = numbers.Where(n => n >= 10);このコードは
「10以上の要素だけを取得する」
という意味になります
Select|データを変換する
Select は、要素を別の形に変換します
var doubled = numbers.Select(n => n * 2);元の List は変わらず、新しい結果が返ってきます
LINQは基本的に「元データを壊さない」設計になっています
Count / Any|存在チェック
件数を調べたいときや、存在するかどうかを知りたいときに使います
int count = numbers.Count();
bool hasLarge = numbers.Any(n => n > 100);if 文と組み合わせると、とても読みやすくなります
First / FirstOrDefault
条件に合う最初の要素を取得します
var first = numbers.First(n => n >= 10);ただし、条件に合う要素が存在しない場合は例外になります
安全に扱いたい場合は FirstOrDefault を使います
OrderBy|並び替え
データを並び替えたいときに使います
var sorted = numbers.OrderBy(n => n);降順にしたい場合は OrderByDescending を使います
LINQとforeachの組み合わせ
LINQの結果は、そのまま foreach で処理できます
foreach (var n in numbers.Where(n => n > 10))
{
Console.WriteLine(n);
}「条件に合うものを表示する」という意図が、とても自然に読めます
DictionaryとLINQ
Dictionary でもLINQは使えます
var highScores = scores.Where(s => s.Value >= 90);キーと値を同時に扱えるので、フィルタ処理がとても楽になります
LINQを使うときの注意点
LINQは便利ですが、使いすぎには注意です
- 処理が何をしているかわかりにくくならないか
- パフォーマンスが問題にならないか
短く書けるからこそ、読みやすさを最優先にするのが大切です
まとめ
- LINQはコレクション操作を簡潔に書く仕組み
- Where と Select は特に使用頻度が高い
- Count / Any / FirstOrDefault で条件判定が楽になる
- 元データを壊さない安全な設計
- 読みやすいコードを書くための強力な味方
DBを扱っていたら見たことのある単語が多く、理解がしやすいと思います。実務でも使えるものですので覚えておくと便利ですよ