2013-02-10 184 views
2

嗯,我正在讀Check if the string contains all inputs on the list 而且試了一下,但是當我有這樣的事情的一個基本問題,如「誰發現Austrlia」 ,如果我把鑰匙詞語的答案爲'船長,廚師「這可能會說我錯了。檢查列表包含在字符串中的所有單詞

任何想法什麼即時做錯了;代碼即時通訊使用:

  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(); 
+1

出於調試的目的,您是否確認'KeyWords'和'invariantText'包含期望值?使用調試器或'Console.WriteLine()'。 – 2013-02-10 02:56:25

+0

讓這個答案花花公子。 因爲我確實打開了一個帶有結果的消息框,並且在下一個問題加載之前忘記清除'KeyWords'陣列列表<3 – Cacoon 2013-02-10 03:16:27

回答

0

感謝第一個評論我的問題。 我放棄了,我從來沒有真正清除數組列表,請確保在做這個檢查後清除數組列表,以便在關鍵字列表中沒有獲得更多的值,然後通緝。

KeyWords.Clear(); 
1

進行調試,確認KeyWordsinvariantText包含預期值。使用調試器或者Console.WriteLine().

這就是單元測試變得有價值的地方。 NUnit或MSTest可用於C#/ VS開發。

+0

感謝您的回答和評論。 感謝我的接觸,我從來沒有真正清除ArrayList <3 Works現在完美。 1000謝謝你! – Cacoon 2013-02-10 03:25:59

相關問題