如何让程序每次从列表中选择不同的字符串,而不是一遍又一遍地编写相同的字符串?

  • 本文关键字:一遍 字符串 程序 列表 选择 c# list
  • 更新时间 :
  • 英文 :


我从列表中随机挑选时遇到了问题。当我运行程序时,当我希望它每次都提出不同的随机字符串时,它会一遍又一遍地写入相同的字符串。下面是一个示例:

using System;
using System.Collections.Generic;
namespace List
{
class Program
{
static void Main(string[] args)
{
var letterList = new List<string>
{
"A","B","C","D"
};
Random r = new Random();
int letterListIndex = r.Next(letterList.Count);
for (int i = 0; i < 10; i++) {
Console.WriteLine(letterList[letterListIndex]);
}
}
}
}

例如:当我运行此代码时,它会写"B"10次。我希望它每次都能想出 10 个不同的字母。我知道你可以写:

int letterListIndex1 = r.Next(letterList.Count);
int letterListIndex2 = r.Next(letterList.Count);
int letterListIndex3 = r.Next(letterList.Count);
Console.WriteLine(letterList[letterListIndex1]);
Console.WriteLine(letterList[letterListIndex2]);
Console.WriteLine(letterList[letterListIndex3]);

但我想知道是否有更简单的方法可以做到这一点。

谢谢。

你应该把你的letterListIndex变量放在循环for

for (int i = 0; i < 10; i++) {
int letterListIndex = r.Next(letterList.Count);
Console.WriteLine(letterList[letterListIndex]);
}

否则,您每次都会获得相同的索引。

你需要把

int letterListIndex = r.Next(letterList.Count);

在 for 循环内。

您可以使用以下代码

for (int i = 0; i < 10; i++) {
Console.WriteLine(letterList[r.Next(letterList.Count)]);
}

相关内容

最新更新