我如何在这种情况下使用“++ i”?

How can i use ' ++ i ' inside this situation?

我想为用户可以赢得由其 ID(1、2、3 等)指定的项目的事件随机命名。随机名称部分现在没问题,但我如何显示结果,如:

The ID : 1 winner is:  'the random name'
The ID : 2 winner is:  'the random name'
etc...
till ID : 27
    static void Main(string[] args)
        {
            string[] Names = { "Erik", "Levente", "Noel", "Áron", "Krisztián", "Kristóf", "Bence", "Roland", "Máté", "László", "Bálint" ,
            "Regina", "Brigitta", "Gréta", "Hédi", "Hanna", "Boglárka", "Jázmin", "Réka", "Alexandra", "Rebeka", "Lili", "Luca", "Zsófi"};

            List<string> alreadyUsed = new List<string>();
            Random r = new Random();
            while (alreadyUsed.Count < Names.Length)
            {
                int index = r.Next(0, Names.Length);
                if (!alreadyUsed.Contains(Names[index]))
                {
                 alreadyUsed.Add(Names[index]);

                 Console.WriteLine("The ID : 1  winner is:  " + Names[index]);
                }
            }
            Console.ReadKey(true);
        }
while (alreadyUsed.Count < Names.Length)
{
    int index = r.Next(0, Names.Length);
    if (!alreadyUsed.Contains(Names[index]))
    {
        alreadyUsed.Add(Names[index]);

        Console.WriteLine("The ID : " + alreadyUsed.Count + " winner is:  " + Names[index]);
    }
}

您不需要 ++i,您已经拥有包含在 alreadyUsed.Count 中的位置,它将在您使用 alreadyUsed.Add(...).

时自行递增

Try it online

这是一个没有表现不佳的重构方法 alreadyUsed。首先我随机化数组,然后我迭代并显示每个项目的递增索引/id。

string[] Names = { "Erik", "Levente", "Noel", "Áron", "Krisztián", "Kristóf", "Bence", "Roland", "Máté", "László", "Bálint" ,  "Regina", "Brigitta", "Gréta", "Hédi", "Hanna", "Boglárka", "Jázmin", "Réka", "Alexandra", "Rebeka", "Lili", "Luca", "Zsófi"};
Random r = new Random();
Names = Names.OrderBy(_ => r.Next()).ToArray();
for(int i=0;i< Names.Length;i++)
{
    Console.WriteLine("The ID : " + (i+1) + " winner is:  " + Names[i]);
}