展开全部
//方法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();
一种是直接把出现的移除,另一种是放到一个容器中,方法还可以优化
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窗体啊,这样就不会了,或者做网站,这是最基础的。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询