C#でキューのデータ構造を利用したデータ格納のコードを紹介します。
C#でキューを利用する場合は、System.Collections 名前空間の Queue クラスを用います。
下図のUIを作成します。テキストボックスとボタンを1つずつ配置します。
下記のコードを記述します。
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace QueueDemo
{
public partial class FormDemo1 : Form
{
public FormDemo1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Queue queue = new Queue();
queue.Enqueue("ペンギン");
queue.Enqueue("くじら");
queue.Enqueue("しろくま");
queue.Enqueue("アヒル");
queue.Enqueue("ヤンバルクイナ");
string text;
for (int i = 0; i < 5; i++) {
text = (string)queue.Dequeue();
textBox_Output.Text += text + "\r\n";
}
}
}
}
Queue queue = new Queue();
により、Queue クラスのインスタンスを作成します。
queue.Enqueue("ペンギン");
queue.Enqueue("くじら");
queue.Enqueue("しろくま");
queue.Enqueue("アヒル");
queue.Enqueue("ヤンバルクイナ");
により、キューにデータを挿入します。
for (int i = 0; i < 5; i++) {
text = (string)queue.Dequeue();
textBox_Output.Text += text + "\r\n";
}
上記コードで、キューからデータをポップし、取得したデータをテキストボックスに表示します。プロジェクトを実行します。下図のウィンドウが表示されます。
[Button1]をクリックします。キューから取り出されたデータがテキストボックスに表示されます。キューに登録した順番(FIFO(First In, First Out, 先入れ先出し)でテキストボックスに値が表示されます。
キューの内容すべてを出力するのであれば、下記コードがよりよいです。
private void button1_Click(object sender, EventArgs e)
{
Queue queue = new Queue();
queue.Enqueue("ペンギン");
queue.Enqueue("くじら");
queue.Enqueue("しろくま");
queue.Enqueue("アヒル");
queue.Enqueue("ヤンバルクイナ");
string text;
while (queue.Count > 0) {
text = (string)queue.Dequeue();
textBox_Output.Text += text + "\r\n";
}
}