C#のLINQメソッド構文の基本と書き方を解説!初心者向け入門ガイド
生徒
「先生、C#のLINQってよく聞くんですけど、メソッド構文ってどういうものなんですか?」
先生
「いい質問ですね。C#のLINQには大きく分けて、クエリ構文とメソッド構文があります。その中でもメソッド構文は、メソッドチェーンという形で書けるので便利なんですよ。」
生徒
「メソッドチェーンって何ですか?ちょっと難しそうです…」
先生
「大丈夫ですよ。メソッドを点(.)でつなげて、次々に処理を指定していく書き方のことです。実際にコードを見ながら解説しますね。」
1. LINQメソッド構文とは?
C#のLINQ(Language Integrated Query)は、コレクション(リストや配列など)に対して検索や並び替えを行える便利な機能です。その中でもメソッド構文は、メソッドをつなげてデータ操作を行う書き方を指します。
例えば、「学生リストから20歳以上の人を取り出す」といった操作を、簡単にプログラムで表現できます。クエリ構文がSQL(データベースの言語)に似ているのに対して、メソッド構文はメソッド呼び出しを組み合わせる形で記述します。
2. メソッド構文の基本的な書き方
LINQメソッド構文では、代表的に次のようなメソッドを使います。
Where:条件に合う要素を取り出すSelect:要素を変換するOrderBy:並び替えを行うTake:先頭から指定した件数を取り出す
これらをつなげることで、複雑な処理もシンプルに書けるようになります。
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<int> numbers = new List<int> { 5, 12, 3, 20, 8 };
var result = numbers
.Where(n => n >= 10)
.OrderBy(n => n)
.Select(n => n * 2);
foreach (var num in result)
{
Console.WriteLine(num);
}
}
}
12
40
この例では、リストの中から10以上の数を取り出し(Where)、小さい順に並び替えて(OrderBy)、さらに2倍して(Select)出力しています。
3. メソッドチェーンの考え方
メソッド構文のポイントは、メソッドチェーンです。これは、ひとつの処理結果を次のメソッドにそのまま渡す書き方です。
例えるなら、「買い物カゴから商品を選ぶ」→「並べ替える」→「価格を割引する」といった流れを、点(.)でつないで表現しているイメージです。
一行ずつ処理を分けるよりも、流れをそのままコードで書けるため、読みやすく整理されたプログラムになります。
4. よく使うLINQメソッドの紹介
初心者が最初に覚えると便利なメソッドをいくつか紹介します。
Where:条件で絞り込み(例:偶数だけ取り出す)Select:形を変換(例:数値を文字列に変換する)OrderBy/OrderByDescending:昇順・降順に並べ替えFirst/FirstOrDefault:最初の要素を取り出すCount:要素の数を数える
これらを組み合わせることで、実用的なデータ処理がどんどんできるようになります。
5. 具体例:名前リストを操作する
次は、文字列のリストを使った例を見てみましょう。
using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
List<string> names = new List<string> { "Taro", "Hanako", "Jiro", "Saburo" };
var result = names
.Where(name => name.Length > 4)
.OrderBy(name => name);
foreach (var n in result)
{
Console.WriteLine(n);
}
}
}
Hanako
Saburo
このプログラムでは、名前の文字数が4文字より多いものを抽出し、アルファベット順に並べ替えています。とてもシンプルに書けているのがわかりますね。
6. LINQメソッド構文の基本を押さえよう
C#のLINQメソッド構文を使うと、リストや配列といったコレクションを効率的に処理できます。Where、Select、OrderByなどの基本的なメソッドを覚えるだけでも、データ操作の幅がぐっと広がります。
最初は少し慣れが必要ですが、「条件で絞り込み → 並び替え → 変換」という流れを意識して書くと理解しやすいでしょう。
まとめ
C#のLINQメソッド構文は、データ操作を効率化し、コードの可読性や保守性を高めるために非常に役立つ手法です。特にWhere、Select、OrderByといった基本的なメソッドを活用することで、複雑なロジックを簡潔に記述できます。
メソッドチェーンを使うことで、1つ1つの処理をつなげながら書けるため、処理の流れが自然に読み取れるのも大きな利点です。これは、「データを絞る」「並び替える」「変換する」といった日常的な処理を、直感的に表現できるからこそ多くの開発者に支持されています。
例えば、商品リストから価格が1000円以上のものだけを抽出し、名前の順に並び替えて出力する処理も、わずか数行で実現できます。
LINQメソッド構文を使った商品フィルタの例
using System;
using System.Collections.Generic;
using System.Linq;
class Product
{
public string Name { get; set; }
public int Price { get; set; }
}
class Program
{
static void Main()
{
var products = new List<Product>
{
new Product { Name = "ノート", Price = 300 },
new Product { Name = "ペン", Price = 150 },
new Product { Name = "USBメモリ", Price = 1200 },
new Product { Name = "イヤホン", Price = 2500 }
};
var result = products
.Where(p => p.Price >= 1000)
.OrderBy(p => p.Name)
.Select(p => $"{p.Name}({p.Price}円)");
foreach (var item in result)
{
Console.WriteLine(item);
}
}
}
USBメモリ(1200円)
イヤホン(2500円)
このように、LINQメソッド構文は実用的なシーンでも力を発揮します。特定条件に合うデータだけを取り出して、見やすい形式に変換し、並び替えて表示する処理がとても簡単に書けるのです。
また、LINQはコレクション操作だけでなく、Countで件数を数えたり、FirstOrDefaultで最初の要素を安全に取得したりと、多くの便利なメソッドを提供しています。これらを活用することで、より堅牢で効率的なコードを書くことができます。
初心者の方はまず、WhereとSelectを繰り返し練習して、メソッドチェーンに慣れることから始めると良いでしょう。簡単なリストの操作からステップアップしていくことで、自然と応用力も身につきます。
生徒
「先生、LINQのメソッド構文って、最初は難しく感じたけど、使ってみたら意外とスッキリ書けるんですね!」
先生
「その通りです。複雑な処理を簡潔に書けるのがLINQの魅力なんですよ。慣れてくると処理の流れも直感的に組み立てられるようになります。」
生徒
「商品リストをフィルタして並び替えたり、数値の計算結果を変換したり、いろんな場面で使えそうですね。」
先生
「その感覚を大切にしましょう。LINQは業務アプリでもWebサービスでも活躍しますから、基本の使い方をしっかり身につけてくださいね。」
生徒
「はい!Where、Select、OrderByの組み合わせ、たくさん練習してみます!」