c# winform 随机点名的问题

一份名单连续随机点五次名,要求被点过名的不再被点,这个怎么实现呢,... 一份名单 连续随机点五次名,要求被点过名的不再被点,这个怎么实现呢, 展开
 我来答
书含云8y
2016-08-31 · TA获得超过469个赞
知道小有建树答主
回答量:370
采纳率:57%
帮助的人:80.7万
展开全部
//方法1
List<string> listName = new List<string>() { "1小明", "2小明", "3小明", "4小明", "5小明", "6小明", "7小明", "8小明", "9小明", "10小明", "11小明", "12小明" };
Random random = new Random();
int n = random.Next(0, listName.Count);
for (int i = 0; i < listName.Count; i++)
{
n = random.Next(0, listName.Count);
Console.WriteLine(listName[n]);
listName.RemoveAt(n);
}

//方法2
List<string> listName = new List<string>() { "1小明", "2小明", "3小明", "4小明", "5小明", "6小明", "7小明", "8小明", "9小明", "10小明", "11小明", "12小明" };
List<int> listNumber = new List<int>();
Random random = new Random();
int n = random.Next(0, listName.Count - 1);
for (int i = 0; i < 5; i++)
{
do
{
if (!listNumber.Contains(n))
{
Console.WriteLine(listName[n]);
listNumber.Add(n);
}
else
{
n = random.Next(0, listName.Count - 1);
}
}
while (listNumber.Contains(n));
}

Console.ReadKey();
一种是直接把出现的移除,另一种是放到一个容器中,方法还可以优化
追问
3Q,自己用的直接移除,也实现了,第二个我我去试试,这些都有个蛋疼的问题,软件关闭了就啥都没了
追答
做winform窗体啊,这样就不会了,或者做网站,这是最基础的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式