ボタンをクリックするたびに、(作成したカテゴリのリストから) ランダムなカテゴリと適切な単語をメッセージ ボックスに表示するプログラムを作成したいと考えています。
実行するとカテゴリがランダム化されますが、カテゴリにあるはずの正しい単語が正しく配置されていません。 エラーのイメージ
また、プログラムがカテゴリの負のインデックスに達するか、すべてのカテゴリが表示されると、プログラムがクラッシュすることを知っています エラーの画像
しかし、負の値に達するとインデックスの削除が自動的に停止するように、どのロジックを使用すればよいかわかりません。
コード:
namespace randomCategory
{
public partial class Form1 : Form
{
Random rand = new Random();
List<string> categories = new List<string> { "Book Titles", "Movie Titles", "Car Parts", "Human Body Parts", "Transportations" };
public Form1()
{
InitializeComponent();
listBox1.DataSource = categories;
}
public void selection()
{
// logic for setting a random category
int index = rand.Next(categories.Count);
var category = categories[index];
// logic for assigning the word for a category
switch (index)
{
case 0:
MessageBox.Show(category, "Harry Potter");
break;
case 1:
MessageBox.Show(category, "Summer Wars");
break;
case 2:
MessageBox.Show(category, "Bumper");
break;
case 3:
MessageBox.Show(category, "Eyes");
break;
case 4:
MessageBox.Show(category, "Boat");
break;
default:
MessageBox.Show("Empty!", "!!!");
break;
}
categories.RemoveAt(index);
}
private void button1_Click(object sender, EventArgs e)
{
selection();
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}