【发布时间】:2017-07-19 09:10:26
【问题描述】:
我正在从ListBox 创建另一个随机生成器。我希望他们从listBox 中随机选择3 个项目,然后将其显示在TextBox 上。
Random random = new Random();
int a = random.Next(0, listBox1.Items.Count);
listBox1.SelectedItem = listBox1.Items[a];
int b = random.Next(0, listBox1.Items.Count);
listBox1.SelectedItem = listBox1.Items[b];
int c = random.Next(0, listBox1.Items.Count);
listBox1.SelectedItem = listBox1.Items[c];
listBox1.Select();
textBox1.Text = listBox1.Items[a] + ", " + listBox1.Items[b] + ", " + listBox1.Items[c];
问题有时是项目被选择了两次。 示例:
listBox 项:一、二、三、四、五、六
输出:一,六,一(“一”项被选中了两次,我不想这样做)
谢谢。
【问题讨论】:
-
使用 enumerable.range 得到一个从 0 到 list.count - 1 的整数列表。查找一个洗牌算法。就像洗一副牌一样。