C#使用字典功能检查正确答案

时间:2015-04-20 20:37:07

标签: c# dictionary

对于学校作业,我必须创建驾驶理论考试,并且必须使用词典功能。

Dictionary<int, QuestionsClass> dictionary = new Dictionary<int, QuestionsClass>();
        dictionary.Add(0, new Classes.QuestionsClass("Question", "Answer A", "Answer B", "Answer C", "Answer D", "Answer B"));
question = dictionary;

这是字典代码的示例,其中最后一个列表项是正确的答案。

private void Option01Selected(object sender, EventArgs e)
    {
        if (radOption1.Checked)
        {
            SelectedAnswer = radOption1.Text;
        }
    }

我有四个,所以程序知道选择了哪个选项作为答案。用户选择后,会点击提交按钮。

CorrectAnswer(); //check the answer is correct
CountQuestions++; //counts how many questions have been asked

这是提交按钮

中代码的一部分
if (!string.Equals(SelectedAnswer, question[RandomQuestion].Answer, StringComparison.OrdinalIgnoreCase))
            {
                Correct = Correct + 1;
            }
lblScore.Text = Convert.ToString(Correct);

这是保持正确答案得分的功能。

现在出现问题。它可能非常简单易用,但这是我的第一个C#应用程序,我无法弄明白。

当用户选择答案时,程序始终将其视为正确答案。

任何帮助都将是一个巨大的帮助。

谢谢 皮尔

2 个答案:

答案 0 :(得分:0)

要评估答案是否正确,请执行以下比较:

string.Equals(
  SelectedAnswer,
  question[RandomQuestion].Answer,
  StringComparison.OrdinalIgnoreCase
)

输入的答案与问题的答案相符,这是真的。但是,出于某种原因,您否定了这种比较并使用该标准来确定答案是否正确:

if (!string.Equals(SelectedAnswer, question[RandomQuestion].Answer, StringComparison.OrdinalIgnoreCase))
{
    Correct = Correct + 1;
}

这会使用错误答案交换正确答案,而不是您想要的答案。

因此,如果我的分析是正确的,您需要在调用!之前摆脱逻辑非运算符(string.Equals)。

答案 1 :(得分:0)

如果陈述应该是:

if (string.Equals(SelectedAnswer, question[RandomQuestion].Answer, StringComparison.OrdinalIgnoreCase))
{
    Correct = Correct + 1;
}

您目前正在检查两个答案是否相等,如果是,则增加1。