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

0 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]);

    }
 }
}
}
Run Code Online (Sandbox Code Playgroud)

例如:当我运行这段代码时,它会写 10 次“B”。我希望它每次都想出 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]);
Run Code Online (Sandbox Code Playgroud)

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

谢谢。

Pav*_*ski 5

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

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

否则你每次都会得到相同的索引。