Как сделать рандомный выбор, из списка вариантов в C#
Еще вопрос об ограничителе вопросов. К примеру есть 60 вопросов, нужно из них только 20 что бы были заданны. Как это можно прописать?
Заранее прошу обратить внимание на ник, что бы не возникло недопонимание о моей глупости)
Код:
public int OneQuestionFrom(int[] nArr, int count, int MaxNumberOfQuestion)
{
int nRes;
Random Rnd = new Random();
while (true)
{
nRes = Rnd.Next(MaxNumberOfQuestion + 1);
for (int i = 0; i < count)
{
if (nArr[i] != nRes) return nRes;
}
}
}//Функция вывода уникального номера(чтобы в списке GetArrayOfQuestions() не было одинаковых номеров вопросов)
//В функцию входят параметры: массив уже имеющихся номеров(для сравнения с имеющимися номерами), его размер(в данном случае - 20)
//А также максимальный возможный номер вопроса
public int[] GetArrayOfQuestions()
{
int[] nRes = new int[20];
for (int n = 0; n < 20; n++)
{
nRes[n] = OneQuestionFrom(nRes,20,60); // см. коммент
}
return nRes; //На выходе - массив номеров вопросов(х20).
}
{
int nRes;
Random Rnd = new Random();
while (true)
{
nRes = Rnd.Next(MaxNumberOfQuestion + 1);
for (int i = 0; i < count)
{
if (nArr[i] != nRes) return nRes;
}
}
}//Функция вывода уникального номера(чтобы в списке GetArrayOfQuestions() не было одинаковых номеров вопросов)
//В функцию входят параметры: массив уже имеющихся номеров(для сравнения с имеющимися номерами), его размер(в данном случае - 20)
//А также максимальный возможный номер вопроса
public int[] GetArrayOfQuestions()
{
int[] nRes = new int[20];
for (int n = 0; n < 20; n++)
{
nRes[n] = OneQuestionFrom(nRes,20,60); // см. коммент
}
return nRes; //На выходе - массив номеров вопросов(х20).
}
А по поводу литературы, смотрите самоучитель Ватсона Б. Есть также с примерами кода.