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

C#のQueueクラスを使ったEnqueueとDequeueの基本操作


Queueコレクションクラスは、C#のSystem.Collections名前空間に含まれるデータ構造の一つです。このクラスでは、要素がFIFO(First In First Out:先入れ先出し)方式で格納されます。つまり、最初に追加された要素が最初に取り出される仕組みで、映画館のチケット売り場前に並ぶ人の行列と同じイメージです。

Queueクラスには、主に次の2つのメソッドが用意されています。

  • Enqueue() … キューに値を追加するメソッド
  • Dequeue() … キューから値を取り出すメソッド

Enqueue:キューへの要素の追加

Enqueueメソッドを使用すると、キューの末尾に新しい要素を追加できます。以下は、文字列を2つ追加する例です。

Queue q = new Queue();
q.Enqueue("Two");
q.Enqueue("One");

この場合、「Two」が先に追加され、その後に「One」が追加されるため、取り出す際には「Two」→「One」の順番になります。

Dequeue:キューからの要素の取得

Dequeueメソッドは、キューの先頭から要素を取り出します。取り出された要素はキューから削除される点に注意してください。以下のコードは、キューが空になるまで全要素を順番に取り出して表示する例です。

Queue q = new Queue();
q.Enqueue("Two");
q.Enqueue("One");
// 要素をすべて取り出す
while (q.Count > 0)
   Console.WriteLine(q.Dequeue());

実行結果は次のようになります。

Two
One

補足:Countプロパティとジェネリック版Queue<T>

上記の例のように、Countプロパティを使うことで、キュー内に残っている要素数を確認できます。whileループの条件として利用することで、キューが空になるまで安全に処理を繰り返せます。

また、現代のC#開発では、型安全性を高めるためにジェネリック版のQueue<T>(System.Collections.Generic名前空間)を使用するのが一般的です。Queue<string>のように具体的な型を指定することで、ボックス化のオーバーヘッドを避け、より効率的かつ安全なコードを書くことができます。


  1. 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

  2. C#のDequeクラスとは?両端キューの仕組みと主なメソッドを解説

    Dequeクラスとは Deque(デック、Double-Ended Queue:両端キュー)クラスは、双方向リンクリストを使って要素のコレクションを実装したデータ構造です。双方向リンクリストは「先頭(front)」と「末尾(back)」の2つのノードを持っているため、Dequeの前後どちら側にも要素を追加できるのが特徴です。 通常のキュー(Queue)が一方の端から要素を追加し、もう一方の端から取り出すだけであるのに対し、Dequeクラスでは両端から要素の追加と削除が可能です。この柔軟性こそが、Dequeが「double-ended queue(両端キュー)」と呼ばれる理由です。 Deque