我正在阅读Check if the string contains all inputs on the list 并尝试过,但当我有一个像'谁发现澳大利亚'这样的基本问题时 如果我把关键词放在答案中作为“队长,做饭”就会说我的问题出错了。
知道我做错了什么;代码即时使用:
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();
答案 0 :(得分:1)
出于调试目的,请确认KeyWords
和invariantText
包含预期值。使用调试器或Console.WriteLine().
这是单元测试变得有价值的地方。 NUnit或MSTest可用于C#/ VS开发。
答案 1 :(得分:0)
感谢对我的问题的第一个评论。 我放心,我从未真正清除过arylylist,请确保在执行此检查后清除arraylist,以便在您的关键字列表中没有获得更多值,然后想要。
KeyWords.Clear();