Ich versuche eine Methode zu erstellen, die ein Quiz bewertet. Es funktioniert gut, wenn die Quizfrage nur eine richtige Antwort hat, aber ich habe es schwer mit mehreren richtigen Antworten umzugehen.Durch eine Liste blättern und mehreren Bedingungen entsprechen
Zuerst überprüfe ich, wie viele richtige Antworten die aktuelle Frage hat. Wenn es mehr als 1 ist, dann brauche ich eine Methode, die überprüft, ob die Benutzer antworten, ist eine perfekte Übereinstimmung mit den richtigen Antworten.
Also, wenn es eine Frage mit 2 richtigen Antworten gibt, und der Benutzer nur in 1 von ihnen eingecheckt hat, erhält er keine Punktzahl.
Irgendwelche Ideen zu einer Methode zu überprüfen, dass die Anzahl der Antworten, die richtige Antworten sind, die richtigen Antworten entsprechen?
Ich denke, LINQ würde hier gut passen, aber ich bin ein totaler Noob darauf. Vielleicht wäre es eine Lösung, alle richtigen Antworten zu einer neuen Liste hinzuzufügen und sie mit .Contains zu vergleichen.
Die Klassen wie folgt aussehen:
List<Question>
Question-Class
- List<Answers>
-(string) AnswerText
-(bool) CorrectAnswer
- List<string> UserAnswerToQuestionText
Pseudo-Code:
if (currentquestion has more than one correct answer)
if (UserAnswerText == correctAnswerX && UserAnswerText == correctAnswerY)
nrofCorrectAnswers++;
Vielen Dank für Ihre Antwort . Das ist definitiv ein Schritt nach vorne! :-) Obwohl meine Klasse sieht so aus, so ist die Benutzer Antworten in einer Liste von Zeichenfolgen, können Sie sie noch so mit linq iterieren? –
Ja, Sie können nur die ID für den Text ändern. Sie müssen einige Formatierungen und Überprüfungen vornehmen, da sich die Zeichenfolgen ändern. –