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

C#のQueue.Enqueue()メソッドとは?使い方とサンプルコードをわかりやすく解説

C#におけるQueue.Enqueue()メソッドは、キュー(Queue)の末尾にオブジェクトを追加するためのメソッドです。キューは「先入れ先出し(FIFO:First In First Out)」という特性を持つデータ構造であり、Enqueue()で追加した要素は、Dequeue()メソッドによって先頭から順番に取り出されます。

構文

Queue.Enqueue()メソッドの構文は以下の通りです。

public virtual void Enqueue (object ob);

パラメータ ob には、キューに追加したいオブジェクトを指定します。戻り値はありません(void型)。

サンプルコード例1

まずは基本的な使用例を見てみましょう。以下のコードでは、文字列型のキューを作成し、Enqueue()メソッドで複数の要素を追加した後、Dequeue()やClear()との組み合わせで動作を確認しています。

using System;
using System.Collections.Generic;
public class Demo {
    public static void Main(){
        Queue<string> queue = new Queue<string>();
        queue.Enqueue("Gary");
        queue.Enqueue("Jack");
        queue.Enqueue("Ryan");
        queue.Enqueue("Kevin");
        queue.Enqueue("Mark");
        queue.Enqueue("Jack");
        queue.Enqueue("Ryan");
        queue.Enqueue("Kevin");
        Console.Write("Count of elements = ");
        Console.WriteLine(queue.Count);
        Console.WriteLine("Queue...");
        foreach(string i in queue){
            Console.WriteLine(i);
        }
        queue.Dequeue();
        queue.Dequeue();
        Console.WriteLine("Queue...UPDATED");
        foreach(string i in queue){
            Console.WriteLine(i);
        }
        Console.Write("Count of elements (updated) = "+queue.Count);
        queue.Clear();
        Console.Write("\nCount of elements (updated AGAIN) = ");
        Console.WriteLine(queue.Count);
    }
}

実行結果

上記のコードを実行すると、次のような出力が得られます。

Count of elements = 8
Queue...
Gary
Jack
Ryan
Kevin
Mark
Jack
Ryan
Kevin
Queue...UPDATED
Ryan
Kevin
Mark
Jack
Ryan
Kevin
Count of elements (updated) = 6
Count of elements (updated AGAIN) = 0

サンプルコード例2

続いて、別の例をご紹介します。この例では、最初に5つの要素を追加して内容を表示した後、さらに3つの要素をEnqueue()で追加し、その後Dequeue()で削除する一連の流れを確認できます。

using System;
using System.Collections.Generic;
public class Demo {
    public static void Main(){
        Queue<string> queue = new Queue<string>();
        queue.Enqueue("Gary");
        queue.Enqueue("Jack");
        queue.Enqueue("Ryan");
        queue.Enqueue("Kevin");
        queue.Enqueue("Mark");
        Console.WriteLine("Queue...");
        foreach(string i in queue){
            Console.WriteLine(i);
        }
        Console.Write("Count of elements = ");
        Console.WriteLine(queue.Count);
        queue.Enqueue("Jack");
        queue.Enqueue("Ryan");
        queue.Enqueue("Kevin");
        Console.WriteLine("\nQueue...UPDATED");
        foreach(string i in queue){
            Console.WriteLine(i);
        }
        Console.Write("Count of elements (Updated) = ");
        Console.WriteLine(queue.Count);
        queue.Dequeue();
        queue.Dequeue();
        Console.WriteLine("\nQueue...UPDATED");
        foreach(string i in queue){
            Console.WriteLine(i);
        }
        Console.Write("Count of elements = ");
        Console.WriteLine(queue.Count);
        queue.Clear();
        Console.Write("\nCount of elements (updated AGAIN) = ");
        Console.WriteLine(queue.Count);
    }
}

実行結果

このコードを実行すると、以下の出力が得られます。

Queue...
Gary
Jack
Ryan
Kevin
Mark
Count of elements = 5
Queue...UPDATED
Gary
Jack
Ryan
Kevin
Mark
Jack
Ryan
Kevin
Count of elements (Updated) = 8
Queue...UPDATED
Ryan
Kevin
Mark
Jack
Ryan
Kevin
Count of elements = 6
Count of elements (updated AGAIN) = 0

まとめ

Queue.Enqueue()メソッドを使うことで、キューの末尾へ簡単に要素を追加できます。追加された要素はFIFOの原則に従い、Dequeue()メソッドで先頭から順に取り出されます。また、Countプロパティで現在の要素数を取得したり、Clear()メソッドですべての要素を一括削除したりすることも可能です。これらのメソッドを組み合わせることで、タスク管理や処理待ち行列など、さまざまな場面でキューを効果的に活用できます。

  1. C#のConsole.SetBufferSize()メソッドの使い方を徹底解説

    C#におけるConsole.SetBufferSize()メソッドは、コンソール画面のバッファ領域(スクリーンバッファ)の幅と高さを指定した値に設定するために使用されるメソッドです。コンソールアプリケーションで表示領域をカスタマイズしたい場合に活用できます。構文Console.SetBufferSize()メソッドの構文は以下の通りです。public static void SetBufferSize (int width, int height);各パラメータの意味は次のようになっています。width: バッファ領域の幅(列数)を指定します。height: バッファ領域の高さ(行数)を指定し

  2. C#のConsole.ResetColor()メソッドの使い方を解説

    概要C#のConsole.ResetColor()メソッドは、コンソールの前景色(文字色)と背景色を、既定の配色に戻すために使用されます。プログラム内で一時的に文字色や背景色を変更した後、元の状態へ復元したい場合に非常に便利です。構文ResetColor()メソッドの構文は以下のとおりです。public static void ResetColor ();このメソッドは引数を受け取らず、戻り値もありません。また、staticメソッドであるため、インスタンスを生成することなく、Consoleクラスから直接呼び出すことができます。使用例それでは、C#でConsole.ResetColor()メソッ