2

好吧,我正在阅读检查字符串是否包含列表中的所有输入 并尝试过,但是当我遇到诸如“谁发现了澳大利亚”之类的基本问题并且如果我将答案中的关键词作为“船长,厨师”时它会说我的问题错了。

知道我做错了什么;我使用的代码:

            GivenAnswer = textBox1.Text;
            String invariantText = textBox1.Text.ToUpperInvariant();
            bool matches = KeyWords.All(kw => invariantText.Contains(kw.ToUpperInvariant()));
                if (matches)
                {
                    correct++;
                    if (InstantResult) { MessageBox.Show("Questions Answered Correctly", "Answer Results", MessageBoxButtons.OK, MessageBoxIcon.Information); }
                }
                else
                {
                    incorrect++;
                    if (InstantResult) { MessageBox.Show("Question Answered Wrong, sorry!", "Answer Result", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); }
                }
            Study_Helper.Form1.QuestionResults.Add(Question + "|" + (matches ? "true" : "false") + "|" + (Exact? "N/A" : KeyWords_Found()) + "|" + (Hint_Used ? "true" : "false") + "|" + GivenAnswer.ToLowerInvariant());
            LoadUp();
            textBox1.Clear();
            textBox1.Focus();
4

2 回答 2

1

出于调试目的,请确认KeyWordsinvariantText包含预期值。使用调试器或Console.WriteLine().

这就是单元测试变得有价值的地方。NUnit 或 MSTest 可用于 C#/VS 开发。

于 2013-02-10T03:23:26.060 回答
0

感谢对我的问题的第一条评论。我认为我从未真正清除过数组列表,请确保在执行此检查后清除数组列表,以免在关键字列表中获得更多的值然后想要。

KeyWords.Clear();
于 2013-02-10T03:18:30.660 回答