C# Sélectionnez l'élément aléatoire de la Liste
Je suis entrain de créer un petit quiz application console.
J'ai fait une liste avec les 3 questions en elle.
Comment puis-je laisser le programme choisir au hasard une question et l'imprimer int la console?
J'ai essayé quelques-uns des codes différents, mais ne peux pas te semblent le faire fonctionner pour une raison quelconque.
C'est le dernier code que j'ai essayé, que j'ai obtenu à partir d'un autre utilisateur de ce site, mais j'obtiens les erreurs suivantes:
"The name 'string' does not exists in current context"
"Depuis" Le Questionnaire.Questions.main()' retourne void, un mot-clé ne doit pas être suivi par un objet de l'expression"
Voici le dernier morceau de code que j'ai essayé:
class Questions
{
public static void main()
{
var questions = new List<string>{
"question1",
"question2",
"question3"};
int index = Random.Next(strings.Count);
questions.RemoveAt(index);
return questions;
}
}
Merci à tous pour vos réponses.
J'ai réglé mon problème en créant un tableau au lieu d'une Liste.
C'est mon code maintenant :
class Questions
{
public static void main()
{
string[] questions = new string[3];
questions[0] = "question1";
questions[1] = "question2";
questions[2] = "question3";
Random rnd = new Random();
Console.WriteLine(questions[rnd.Next(0,2)]);
}
}
- Comment appelez-vous votre méthode? Comme son actuellement un vide de type, vous devez laisser le retour de la valeur
questions
- double => stackoverflow.com/questions/2019417/access-random-item-in-list
- var randomQuestion = questions[new Random().Prochaine(questions.Le comte)]; assurez-vous d'abord que la liste n'est pas null
- Double Possible de l'Accès aléatoire dans la liste
Vous devez vous connecter pour publier un commentaire.
Êtes-vous sûr que vous voulez supprimer une question et d'y revenir le reste des questions?
Si vous n'êtes pas en choisir une seule? Quelque chose comme ceci :
Vous besoin d'un Système.Console.WriteLine tresorerie.
Essayer quelque chose comme cela
Il y a une faute de frappe lorsque vous utilisez
string
au lieu dequestions
. Aussi,Random
objet doit être initalised.Je suppose que vous voulez
au lieu de
Car il n'y a pas de variable avec le nom
strings
et que vous souhaitez supprimer une question de toute façon.Aussi, vous ne pouvez pas retourner quelque chose à partir d'un
void
méthode. Donc en créer un qui retourne la liste:Modifier: dernier mais non le moindre, vous ne pouvez pas utiliser
Random.Next
. Qui aurait tendance à penser qu'il y a unstatic
Next
méthode dansRandom
qui n'est pas le cas. Donc j'ai montré ci-dessus comment créer et utiliser une instance. Notez que vous ne devez pas créer de il je de la méthode elle-même, car il est ensemencé avec le courant du temps. Si vous souhaitez appeler cette méthode très rapide, vous obtiendrez le même "aléatoire" valeur souvent.Ont un coup d'oeil à msdn à la section remarques pour plus de détails.
Pour d'autres chercheurs en bénéficier: Si vous voulez une contraction de la liste pour vous assurer que vous utilisez tous les éléments de façon aléatoire puis le faire:
Quelque chose comme cela pourrait être ce que vous voulez:
Vous pouvez l'appeler sur votre liste pour obtenir un élément aléatoire à partir d'elle.
Vous avez un couple d'erreurs mineures.
Vous avez besoin d'une référence à un
Rand
objet. Vous êtes à la recherche àstrings
au lieu dequestions
. Vous êtes à la suppression d'un élément au lieu de le sélectionner.Essayez ceci: