まず、問題を理解する必要があります。要件を確認して、オブジェクトを考えてください。あなたには必ず「問い」と「答え」があります。各問題には4 つの回答があり、正解は 1 つだけです。したがって、最初の非常に単純なアプローチは次のようになります。
class Question
{
public string QuestionText{ get; set; }
public string AnswerA { get;set }
public string AnswerB { get;set }
public string AnswerC { get;set }
public string AnswerD { get;set }
}
これは良いスタートですが、完璧ではありません。この質問オブジェクト内に正解も保存できるようになりました。しかし、この新しい特性を最大限に活用するには、答えをもう少し動的にすることが理にかなっています。
class Question
{
public Question()
{
Answers = new string[4];
}
public string QuestionText{ get; set; }
public string[] Answers { get;set; }
public int CorrectAnswer {get;set; }
}
したがって、この小さなオブジェクトを使用して、次のようなすべての質問を作成できます。
var question = new Question();
question.QuestionText = "What color is snow?";
question.Answers[0] = "Red";
question.Answers[1] = "Yellow";
question.Answers[2] = "White";
question.Answers[3] = "Green";
question.CorrectAnswer = 2;
// ... more questions
var listOfQuestions = new List<Question>();
listOfQuestions.Add(question);
ランダムにソートする方法は、ここ SO で見つけるのが難しくない別のトピックです。
私は個人的にicemanindsのアイデアが好きです.彼の答えを使って私の基本的なアプローチを改善することができます.