Как заменить код в IEnumerator, чтобы он был рандомизирован без повторения? [дубликат]C#

Место общения программистов C#
Ответить
Anonymous
 Как заменить код в IEnumerator, чтобы он был рандомизирован без повторения? [дубликат]

Сообщение Anonymous »

//data for display
{newQues = "abc"; string[] ans = { "abc", "bcd", "cde", "def" }; answer = "abc"; }

public IEnumerator DisplayQues() //use to display question
{
yield return new WaitForSeconds(0.25f);
Ques.GetComponent().text = newQues;

ansNum = Random.Range(0, ans.Length);
AnsA = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
ansNum = Random.Range(0, ans.Length);
AnsB = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
ansNum = Random.Range(0, ans.Length);
AnsC = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
ansNum = Random.Range(0, ans.Length);
AnsD = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();

AnswerA.GetComponent().text = AnsA;
AnswerB.GetComponent().text = AnsB;
AnswerC.GetComponent().text = AnsC;
AnswerD.GetComponent().text = AnsD;
}

При воспроизведении сцены отображается сообщение «NullReferenceException: ссылка на объект не установлена ​​на экземпляр объекта».
В строке ansNum возникает ошибка. = Random.Range(0, ans.Length);
Как заменить этот код?
ansNum = Random.Range(0, ans.Length);
AnsA = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
ansNum = Random.Range(0, ans.Length);
AnsB = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
ansNum = Random.Range(0, ans.Length);
AnsC = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();
ansNum = Random.Range(0, ans.Length);
AnsD = ans[ansNum];
ans = ans.Except(new string[] { ans[ansNum] }).ToArray();


Подробнее здесь: https://stackoverflow.com/questions/782 ... repetition
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»