C#のQueueを使ってみる

記事内に広告が含まれています。

今回はC#でQueueを使ってみようと思います。

キューはデータ構造のひとつで、先に登録したデータから取り出すという特徴を持ってます。

いわゆる待ち行列と同じですね。

並んだ順番に店内に案内されるのと同じです。

Unityでキューを表現したサンプルを作ってみました。

↑のようになります。

↑のサンプルではキューに赤、緑、青のCubeをボタンで登録が出来るようにし、デキューボタンを押したらデータの取り出し、Peekボタンで最初に登録したデータの取得が出来ます。

キューには4つのデータのみ登録出来るようにし、新しいデータが登録される度にデキューして最初のデータを取り出しています。

スポンサーリンク

Queueを使う

というわけで、C#でQueueを使ってみましょう。

Queueの宣言

Queueはリスト等と同じように宣言します。

C#のListをUnity付属のMonoDevelopで使ってみる
C#のListをUnity付属のMonoDevelopを使って勉強していきます。

例えばint型の値を登録するキューを宣言する場合は、

↑のようにします。

Queueにデータを登録する

キューにデータを登録する事をEnqueueと言います。

queueというQueueクラスの変数が宣言されているとします。

登録にはEnqueueメソッドを使用し、引数に登録するデータを渡します。

↑の例ではint型の0というデータを登録しています。

Queueからデータを取りだす

キューからデータを取りだすにはDequeueメソッドを使用します。

デキューすると最初に登録したデータを取り出し、キュークラスから削除します。

Dequeueメソッドの戻り値で取りだしたデータが返って来るので、変数に入れて使用する事が出来ます。

Queueからデータを削除せず取り出す

Dequeueメソッドを使用するとQueueからデータを削除して取り出しますが、Peekメソッドを使うとデータを削除せず先頭のデータを取りだす事が出来ます。

Queueデータのクリア

Queueに登録された全てのデータを削除するにはClearメソッドを使用します。

Queueデータに該当するデータが存在するかどうか

Queueデータ内に指定したデータが存在するかどうかはContainsメソッドを使用します。

↑の例ではqueueにint型の0が登録されているかどうかを調べる事が出来ます。

Queueデータの登録数

Queueにいくつのデータが登録されているかどうかはCountプロパティで調べる事が出来ます。

Queueを使った簡単なスクリプト

Queueの使い方がわかったところで、それらを使ってサンプルを作ってみました。

終わりに

キューはデータに登録した順番に取りだすようなデータ群を扱いたい時に便利ですね。

受けたダメージをUIで表示する時に最初に受けたダメージ数からUIに表示するといった時や、

テトリスみたいに次に落ちてくるブロックをいくつかデータとして保持しておき、それを入れた順番に取りだしたいといった時ですね。

うーむ・・・あいかわらずいい事例が思い浮かびませぬ・・・・・(-_-)

タイトルとURLをコピーしました