C#TextBox.Text =多个单词

时间:2018-05-17 12:37:27

标签: 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;
}

3 个答案:

答案 0 :(得分:5)

试试这个:

if(new string[] { "byby", "cow", "root" }.Contains(metroTextBox1.Text))
{
   ...
}

修改

与评论中的建议一样,您可以使用HashSet代替Array来存储您要比较的字词。 Contains方法使用HashSet的速度更快,因为它有O(1)个查找,而ArraysListsO(n)个查找。

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

答案 1 :(得分:1)

好的,我会把2美分加到SlavenTojić的回答中:

  • 您可以创建一个包含单词集合的属性:

    private HashSet<string> WordsList { get; } = new HashSet<string>(new[]
    {
        "byby",
        "cow",
        "root"
    });
    

  • 并将事件处理程序添加到TextChanged

    TextBox事件中
    this.textBox1.TextChanged += TextBox1OnTextChanged;
    

  • 在事件处理程序中使用集合来检查它是否包含 元素:

    private void TextBox1OnTextChanged(object sender, EventArgs e)
    {
        if (this.WordsList.Contains(textBox1.Text))
        {
            // ...
        }
    }
    

答案 2 :(得分:0)

将此与比较器一起使用以避免出现问题

      if(new string[] { "byby", "cow", "root" }
         .Contains(metroTextBox1.Text,StringComparison.OrdinalIgnoreCase))
        {
           ...
        }