C#TextBox.Text =多个单词

use*_*220 0 c#

是否有可能比一个更多的单词,我创建了一个计时器,它检查文本框中输入的内容,如果输入的密码更改了图片,那么我的另一个如果功能不起作用,我怎么能做类似的东西这个:

声明代码,我需要这样的东西: if (metroTextBox1.Text == "byby", "cow", "root")

if (metroTextBox1.Text == "byby")
{
     Image img = Properties.Resources.Good_Pincode_48px; // Right'as
     metroTextBox1.Icon = img;
}
else
{
    // new wrong().Show();
    Image img = Properties.Resources.Wrong_Pincode_48px; // Wrong'as
    metroTextBox1.Icon = img;
}
Run Code Online (Sandbox Code Playgroud)

Sla*_*jic 5

试试这个:

if(new string[] { "byby", "cow", "root" }.Contains(metroTextBox1.Text))
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

编辑:

与评论中建议的一样,您可以使用a HashSet而不是Array存储要比较的单词.该Contains方法的工作速度更快,HashSet因为它具有O(1)查找功能Arrays,Lists但具有O(n)查找功能.

HashSet<string> words = new HashSet<string>(){ "byby", "cow", "root" };
if (words.Contains(metroTextBox1.Text))
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

  • @Arturthetemplar不,不会.它会检查整个单词 (4认同)
  • 还要考虑将数组移动到字段以避免多次实例化它.还要考虑使用`HashSet`. (4认同)