检查字符串是否包含列表中的所有输入
本文关键字:输入 列表 字符串 是否 包含 检查 | 更新日期: 2023-09-27 17:58:01
我希望能够检查字符串是否包含列表中的所有值;因此,只有当你的答案中包含了列表中的所有"关键词"时,它才会给你一个"正确答案"。这是我厌倦的东西,它失败了一半;(不检查所有数组,只接受一个)。代码i累了:
foreach (String s in KeyWords)
{
if (textBox1.Text.Contains(s))
{
correct += 1;
MessageBox.Show("Correct!");
LoadUp();
}
else
{
incorrect += 1;
MessageBox.Show("Incorrect.");
LoadUp();
}
}
本质上我想做的是:
问题:心理学的定义是什么?
数组列表中的关键词:学习、心理过程、行为、人类
答:心理学是对人类心理过程和行为的研究
现在,如果并且只有当上面的答案包含所有关键词,我的代码才会接受这个答案。我希望我已经清楚了。
编辑:感谢大家的帮助。所有答案都已投票通过,我感谢大家的快速回答。我投票选出了一个可以很容易地适应任何代码的答案。:)
使用LINQ:
// case insensitive check to eliminate user input case differences
var invariantText = textBox1.Text.ToUpperInvariant();
bool matches = KeyWords.All(kw => invariantText.Contains(kw.ToUpperInvariant()));
这应该会有所帮助:
string text = "Psychology is the study of mental process and behaviour of humans";
bool containsAllKeyWords = KeyWords.All(text.Contains);
您可以使用一些LINQ方法,如:
if(Keywords.All(k => textBox1.Text.Contains(k))) {
correct += 1;
MessageBox.Show("Correct");
} else {
incorrect -= 1;
MessageBox.Show("Incorrect");
}
当函数为列表中的所有项返回true时,All
方法返回true。