如何在不在 C# 范围内时创建 goto 语句?

How to make goto statements when not in scope in C#?

我目前正在用 C# 制作的控制台 window 开发一个小型彩票游戏。

我添加了一个功能,让用户随机选择他将在他的票上拥有的 6 个号码,但我注意到我的随机数生成器有时会生成相同的号码,即使理论上你只能有一个号码,所以我构建了这个检查是否有任何数字相同,只是注意到我无法返回随机化新的数字列表,因为 goto 函数无法跳出循环 (CS0159)。还有其他方法吗?

代码:

                Console.WriteLine("\nRandomized 6 numbers: ");
                
                // Randomize 6 numbers in for the array randomList
                for (int z = 0; z <= 5; z++)
                {
                SameNum:
                    int rndNum = rnd.Next(1, 50);
                    randomList[z] = rndNum;
                }
                // Once the list is done check if any elements of the array
                // are the same and if yes go back to SameNum to generate a new 
                // List of 6 numbers
                for (int a = 0; a <= 5; a++)
                {
                    for (int b = 0; b <= 5; b++)
                    {
                        while (randomList[a] == randomList[b])
                        {
                            goto SameNum;
                        }
                    }

                }

                // Display the random list if there are no same numbers
                for (int c = 0; c <= 5; c++)
                {
                    Console.WriteLine(randomList[c] + " ");
                }

可能的解决方案。

 List<int> digits = new List<int>();
                int z= 0;
                while(z <= 5)
                {
                    int rndNum = rnd.Next(1, 50);
                    if(!digits.Contains(rndNum))
                    {
                       digits.Add(rnbNum); 
                      z++; 
                    }  
                }
    int[] randomList = digits.ToArray();
    digits.Clear();