2013-02-06 19 views
8

पर सभी इनपुट शामिल हैं या नहीं, मैं यह जांचने में सक्षम होना चाहता हूं कि स्ट्रिंग में सूची में रखे गए सभी मान हैं या नहीं; यदि आपके पास आपके उत्तर में सूची से सभी 'महत्वपूर्ण शब्द' हैं तो यह आपको केवल 'सही उत्तर' देगा। कुछ थक गया जो मैं थक गया जो आधा विफल रहता है; (सभी सरणी की जांच नहीं करता है, केवल एक स्वीकार करेगा)। कोड मैं थक गया:जांचें कि स्ट्रिंग में

foreach (String s in KeyWords) 
     { 
      if (textBox1.Text.Contains(s)) 
      { 
       correct += 1; 
       MessageBox.Show("Correct!"); 
       LoadUp(); 
      } 
      else 
      { 
       incorrect += 1; 
       MessageBox.Show("Incorrect."); 
       LoadUp(); 
      } 
     } 

अनिवार्य रूप से मुझे क्या करना चाहते हैं:

प्रश्न: मनोविज्ञान की परिभाषा क्या है? ArrayList में

कुंजी शब्द: अध्ययन, मानसिक प्रक्रिया, व्यवहार, मनुष्य

उत्तर: मनोविज्ञान मानसिक प्रक्रिया और व्यवहार के अध्ययन है की मनुष्य

अब अगर और केवल अगर उपरोक्त उत्तर में सभी महत्वपूर्ण शब्द होंगे, मेरा कोड उत्तर स्वीकार करेगा। मुझे आशा है कि मैं इसके साथ स्पष्ट हो गया हूं।

संपादित करें: आपकी मदद के लिए सभी को धन्यवाद। सभी उत्तरों को वोट दिया गया है और मैं त्वरित उत्तर के लिए सभी को धन्यवाद देता हूं। मैंने उस उत्तर को वोट दिया जिसे आसानी से किसी भी कोड में अनुकूलित किया जा सकता है। :)

उत्तर

13

LINQ का उपयोग करना:

// case insensitive check to eliminate user input case differences 
var invariantText = textBox1.Text.ToUpperInvariant(); 
bool matches = KeyWords.All(kw => invariantText.Contains(kw.ToUpperInvariant())); 
2

आप की तरह LINQ तरीकों में से कुछ का उपयोग कर सकते हैं:

if(Keywords.All(k => textBox1.Text.Contains(k))) { 
    correct += 1; 
    MessageBox.Show("Correct"); 
} else { 
    incorrect -= 1; 
    MessageBox.Show("Incorrect"); 
} 

All विधि सच लौटाता है जब समारोह सूची में आइटम के सभी के लिए सच देता है।

2

यह मदद करनी चाहिए:

string text = "Psychology is the study of mental process and behaviour of humans"; 
bool containsAllKeyWords = KeyWords.All(text.Contains); 
संबंधित मुद्दे