カテゴリ: C# 更新日: 2025/10/07

C#のLINQでAny・Allを使った条件確認を完全解説!初心者でもわかるサンプル付き

C#のLINQでAny・Allなど条件確認メソッドの使い方
C#のLINQでAny・Allなど条件確認メソッドの使い方

先生と生徒の会話形式で理解しよう

生徒

「C#のLINQで、リストの中に特定の条件を満たす要素があるかどうかを調べたいんですが、どうすればいいですか?」

先生

「そんなときに便利なのが、AnyAllというメソッドです。条件の確認がとても簡単にできますよ。」

生徒

「名前だけだとちょっと分かりにくいですね…。どんなときに使うんですか?」

先生

「では、日常生活の例えと一緒に、実際のC#コードを見ながら学んでみましょう!」

1. Anyメソッドとは?

1. Anyメソッドとは?
1. Anyメソッドとは?

C#のLINQに含まれるAnyメソッドは、「コレクション(リストや配列など)の中に、条件を満たす要素が一つでもあるか」を確認するために使います。例えば、クラスの出席簿を思い浮かべてください。「生徒の中に遅刻した人が一人でもいるか」を調べるイメージです。

ポイントは、条件に合うものが一つでもあればtrueを返し、なければfalseを返すことです。


using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        List<int> scores = new List<int> { 80, 92, 67, 100, 58 };

        bool hasFailed = scores.Any(score => score < 60);

        Console.WriteLine(hasFailed);
    }
}

上の例では、「60点未満の人が一人でもいるか」を確認しています。


True

出力結果がTrueとなったのは、リストの中に58点という60未満のスコアが存在しているからです。

2. Allメソッドとは?

2. Allメソッドとは?
2. Allメソッドとは?

Allメソッドは、コレクションのすべての要素が条件を満たしているかを確認するときに使います。例えば、「全員が出席しているか」を調べるイメージです。

ポイントは、条件を一つでも満たさない要素があればfalseを返すことです。


using System;
using System.Collections.Generic;
using System.Linq;

class Program
{
    static void Main()
    {
        List<int> scores = new List<int> { 80, 92, 67, 100, 58 };

        bool allPassed = scores.All(score => score >= 60);

        Console.WriteLine(allPassed);
    }
}

この例では「全員が60点以上か」を確認しています。


False

結果はFalseとなりました。なぜなら、58点という60点未満のスコアが含まれているからです。

3. AnyとAllの違いを日常例で理解する

3. AnyとAllの違いを日常例で理解する
3. AnyとAllの違いを日常例で理解する

初心者の方には、AnyAllの違いが混乱しやすいポイントです。ここで日常生活の例に置き換えてみましょう。

  • Any:「クラスの中に、遅刻した人はいる?」→ 1人でもいればYes。
  • All:「クラス全員が宿題を提出した?」→ 1人でも出していなければNo。

つまり、Anyは「一人でもいるか?」、Allは「全員そうか?」という感覚で覚えると理解しやすいです。

4. 空のコレクションに対する挙動

4. 空のコレクションに対する挙動
4. 空のコレクションに対する挙動

少し応用的なポイントとして、リストが空の場合にどうなるかを確認しておきましょう。

  • Anyは、空のコレクションに対しては必ずfalseを返します。
  • Allは、空のコレクションに対してはtrueを返します。(数学的に「全ての要素が条件を満たす」とみなされるためです)

List<int> emptyList = new List<int>();

Console.WriteLine(emptyList.Any(x => x > 0)); // False
Console.WriteLine(emptyList.All(x => x > 0)); // True

この動作は一見不思議ですが、LINQの仕様として覚えておくと安心です。

5. Any・Allを使うメリット

5. Any・Allを使うメリット
5. Any・Allを使うメリット

プログラム初心者がつまずきやすいのが「ループで条件を探す処理」です。もしAnyAllを使わないと、次のように自分でforeachループを書いて確認する必要があります。


bool hasFailed = false;
foreach (var score in scores)
{
    if (score < 60)
    {
        hasFailed = true;
        break;
    }
}

この処理も正しく動きますが、Anyを使えば一行で書けてとてもスッキリします。


bool hasFailed = scores.Any(score => score < 60);

コードが短くなることで可読性が上がり、エラーも減りやすくなります。

6. まとめとしての理解ポイント

6. まとめとしての理解ポイント
6. まとめとしての理解ポイント

ここまでで、C#のLINQにおけるAnyAllの基本的な使い方や違いを学びました。特にプログラミング初心者にとっては、「条件確認を簡単にできる便利な道具」として覚えると役立ちます。

  • Any:一つでも条件に合えばtrue
  • All:全て条件に合えばtrue
  • 空のリストの場合は、Any=falseAll=true

実際に自分のパソコンでコードを実行しながら確認してみると、理解が一層深まるでしょう。

カテゴリの一覧へ
新着記事
C#で複数ファイルをまとめて操作する方法(foreach・LINQ)をやさしく解説!
C#のインターフェースとは?クラス設計を柔軟にする基本技術
C#のコンストラクタの役割と使い方!オブジェクト初期化の基本
COBOLでデータベース接続を理解しよう!初心者でもわかる基本の考え方
人気記事
No.1
Java&Spring記事人気No1
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.3
Java&Spring記事人気No3
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.4
Java&Spring記事人気No4
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法