【发布时间】:2019-06-14 20:57:51
【问题描述】:
我正在创建这个 Random Draw 应用程序。例如,用户输入 6 个名称,然后他们点击随机化按钮,名称随机显示在彼此旁边的标签中。因此,例如 index[0] 处的名称将播放 index[3] 处的名称,依此类推。我遇到的问题是我不确定如何循环并在不同的标签上显示每个名称。有没有办法计算我的标签并通过这种方式循环?这是我的代码,用于循环列表中的名称并随机选择一个显示在第一个标签上。
for(int i = 0; i < names.Count; i++)
{
Random rand = new Random();
int index = rand.Next(names.Count);
var name = names[index];
lblFirstName.Text = name;
lblFirstName.Visible = true;
names.RemoveAt(index);
}
如您所见,名称将始终显示在 lblFirstName 上。我还有 5 个名为 lblSecondName 等的标签。
【问题讨论】:
-
Random rand = new Random();总是在循环之外,否则你可能会得到重复的结果 -
@fubo 感谢您的提示,我会更改的
-
new Random();等于new Random(seed : CurrentMilliSecond);,因此自CurrentMilliSecond以来(几乎)所有项目的值相同 不会改变 在循环内 -
为什么不简单地将标签添加到循环之前的列表中?然后你可以访问每个像
labels[i].Text = ... -
@blins 是的,我明白你的意思,但是我必须以编程方式设置每个标签的位置,这样它们就不会相互显示?对吗?
标签: c# list for-loop random label