2014-11-07 2 views
-3

У меня есть массив int с 9 номерами, и я хочу установить случайное число на случайную метку (4 метки). при нажатии кнопки добавить следующее случайное число к следующей метке поэтому у меня есть этот код:Как установить случайное число на случайную метку

 int[] CardDeck = new int[9] { 3, 4, 5, 6, 7, 8, 9, 10, 11 }; 

     Random RandomCard = new Random(); 
     int randomIndex = RandomCard.Next(0, CardDeck.Length); 
     int randomNumber = CardDeck[randomIndex]; 

     if (string.IsNullOrEmpty(L1.Text)) 
     { 
      L1.Text = Convert.ToString(randomNumber); 
      return; 
     } 

     if (string.IsNullOrEmpty(L2.Text) && Convert.ToInt32(L1.Text) > 0) 
     { 
      L2.Text = Convert.ToString(randomNumber); 
     } 

но что-то не так он устанавливает одинаковые номера на два лейбл.

ответ

0

Это потому, что вы используете ту же переменную randomNumber.

Вы должны сгенерировать еще одно случайное число для оставшейся метки.

int randomLabel1 = CardDeck[RandomCard.Next(0, CardDeck.Length)]; 
int randomLabel2 = CardDeck[RandomCard.Next(0, CardDeck.Length)]; 

Тогда вы должны использовать эти две переменные с соответствующими метками.

Обратите внимание, что этот подход не гарантирует уникальные случайные числа. Возможны одинаковые номера для обеих меток.

PS: Вы также можете использовать один и тот же randomNumber хранить новое случайное число, но не забудьте сделать это ПОСЛЕ установки первой метки:

int randomNumber = CardDeck[RandomCard.Next(0, CardDeck.Length)]; 
//Set first label 
randomNumber = CardDeck[RandomCard.Next(0, CardDeck.Length)]; 
//Set second label 
Смежные вопросы