检查列表是否包含字符串中的所有单词

时间:2013-02-10 02:42:30

标签: c#

我正在阅读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();

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

感谢对我的问题的第一个评论。 我放心,我从未真正清除过arylylist,请确保在执行此检查后清除arraylist,以便在您的关键字列表中没有获得更多值,然后想要。

KeyWords.Clear();