簡體   English   中英

每次繪制刪除數組元素 C#

[英]Removing array elements per draw C#

每個人。 對於初學者來說,這是我作為大學新生的第一個 C# 代碼(在這里仍然是菜鳥),我提前用我的英語道歉。 所以基本上我已經嘗試解決這個問題 5 個小時了,我真的很擅長這個,這是我第一次在這里尋求幫助。

所以這段代碼的目標是:

1.輸入一個integer 1-2。 1是平局,2是退出

2.抽獎開始后,代碼將在該名稱數組中獲得一個隨機索引

3.然后應從該名稱數組中刪除隨機選擇的元素以獲得新的隨機元素。

4.重復該過程,直到打印時不再出現四個名稱中的一個。

using System;

    class Program
    {
        static void Main(string[] args)
        {
           
            bool isTrue = true;
            while (isTrue)
            {
                
                //user choices
                Console.WriteLine("[1]Draw\n[2]Exit\n");

                //the input
                Console.Write("Enter action: ");
                int choices = Convert.ToInt32(Console.ReadLine());
                
                //array of names
                string[] names = {"Mr. Albert", "Mr. Joshua", "Mr. Bernard", "Mr. Raphael"};

                //for random generating of names
                Random rand = new Random();
                int randNames = rand.Next(names.Length);
                
              
                //Draw
                if(choices == 1){
                    Console.WriteLine("Congrats "+names[randNames]);
                    names[randNames] = " ";
        
                    for(int i=0; i < names.Length; i++){
                        Console.WriteLine(names[i]);
                    }
                    
                }
                else if(choices == 2){
                    isTrue = false;
                }
            }
            
        }
    }
}

所以我的主要問題是在這段代碼中給定的名稱數組

string[] names = {"Mr. Albert", "Mr. Joshua", "Mr. Bernard", "Mr. Raphael"};

在這部分代碼中,我很難搞清楚

if(choices == 1){
   Console.WriteLine("Congrats "+names[randNames]);
          names[randNames] = " ";
   for(int i=0; i < names.Length; i++){
          Console.WriteLine(names[i]);
   }
    

我在這里所做的是,每當我在此處繪制所選擇的數字時,都應將其變成" " ,或者在我繪制並繪制三次時讓它看起來是空的。 我也試圖搜索這個問題,但沒有運氣。

結果將如下所示:

[1]Draw 
[2]Exit 

Enter action: 1
Congrats Mr. Albert

Mr. Joshua
Mr. Bernard
Mr. Raphael
[1]Draw
[2]Reset
[3]Exit

Enter action: 1
Congrats Mr. Joshua
Mr. Albert

Mr. Bernard
Mr. Raphael
[1]Draw
[2]Reset
[3]Exit

Enter action:

您可以在結果中看到它們不存在,但在下一次抽獎中它們仍然存在。 希望有人能幫助我,提前感謝您的幫助。

在 while 循環之前聲明您的數組:

string[] names = {"Mr. Albert", "Mr. Joshua", "Mr. Bernard", "Mr. Raphael"};
while (isTrue)
{
   //do your stuff
}

現在,您編輯數組並在下一次迭代中聲明未編輯的新數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM