C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のQueue(キュー)に特定の要素が含まれているか確認する方法

C#の Queue<T> クラスには、指定した要素がキュー内に存在するかどうかを判定できる Contains() メソッドが用意されています。このメソッドは要素が見つかった場合は true、見つからない場合は false を返します。

ここでは、Contains() メソッドの基本的な使い方を2つのサンプルコードで紹介します。

サンプル1:文字列型のQueueで要素を検索する

まずは文字列を格納したキューの例です。以下のコードでは、複数の商品カテゴリをキューに追加し、「Books」という要素が含まれているかどうかを確認しています。

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        Queue<string> queue = new Queue<string>();
        queue.Enqueue("Electronics");
        queue.Enqueue("Accessories");
        queue.Enqueue("Toys");
        queue.Enqueue("Books");
        queue.Enqueue("Furniture");
        queue.Enqueue("Clothing");
        queue.Enqueue("Footwear");
        queue.Enqueue("Cookware");
        queue.Enqueue("Pet Supplies");

        Console.WriteLine("キュー内の要素一覧...");
        foreach (var element in queue) {
            Console.WriteLine(element);
        }

        Console.WriteLine("キューにBooksは含まれていますか? = " + queue.Contains("Books"));
    }
}

実行結果

キュー内の要素一覧...
Electronics
Accessories
Toys
Books
Furniture
Clothing
Footwear
Cookware
Pet Supplies
キューにBooksは含まれていますか? = True

「Books」はキューに追加されているため、Contains() メソッドは True を返しています。

サンプル2:数値型のQueueで要素を検索する

次に、整数を格納したキューの例を見てみましょう。今度は、キューに存在しない値「50」を検索します。

using System;
using System.Collections.Generic;

public class Demo {
    public static void Main() {
        Queue<int> queue = new Queue<int>();
        queue.Enqueue(100);
        queue.Enqueue(200);
        queue.Enqueue(300);
        queue.Enqueue(400);
        queue.Enqueue(500);
        queue.Enqueue(600);
        queue.Enqueue(700);
        queue.Enqueue(800);
        queue.Enqueue(1000);

        Console.WriteLine("キュー内の要素一覧...");
        foreach (var element in queue) {
            Console.WriteLine(element);
        }

        Console.WriteLine("キューに50は含まれていますか? = " + queue.Contains(50));
    }
}

実行結果

キュー内の要素一覧...
100
200
300
400
500
600
700
800
1000
キューに50は含まれていますか? = False

「50」はキューに存在しないため、結果は False となります。

まとめ

  • Contains() メソッドを使うことで、キューに特定の要素が含まれているかを簡単に判定できます。
  • 戻り値はブール値(true / false)で、要素が存在すれば true、存在しなければ false を返します。
  • この処理は線形探索(O(n))で行われるため、大量のデータを扱う場合はパフォーマンスへの影響も考慮しましょう。
  1. C#のQueue(キュー)クラスとは?FIFOの基本とEnqueue・Dequeueの使い方

    C#のキュー(Queue)とは キュー(Queue)は、オブジェクトを「先入れ先出し(FIFO:First-In, First-Out)」で管理するコレクションです。最初に追加した要素が最初に取り出されるという特性を持つため、タスクの順番待ちや処理の履歴管理など、追加された順序どおりに要素へアクセスしたい場面で活用されます。 要素をキューに追加することを「エンキュー(Enqueue)」、キューから要素を取り出すことを「デキュー(Dequeue)」と呼びます。 要素の追加:Enqueueメソッド キューに要素を追加するには、Enqueueメソッドを使用します。 Queue q = new Qu

  2. C#のQueueクラスにおけるCountプロパティの使い方を解説

    C#のQueueクラスには、キューに格納されている要素の数を取得するためのCountプロパティが用意されています。Countプロパティは読み取り専用で、現在キューに含まれる要素数をint型の値として返します。 Queueへの要素の追加方法 Queueに要素を追加するには、Enqueueメソッドを使用します。以下のようにインスタンスを作成し、要素を順番に追加していきます。 Queue q = new Queue(); q.Enqueue(1); q.Enqueue(2); q.Enqueue(3); q.Enqueue(4); Countプロパティで要素数を取得する 要素を追加した後、C