是否可以创建一个多于一个的单词,我创建了一个计时器,它检查文本框中输入的内容,如果输入的写入密码更改图片,那么我的另一个如果功能不起作用,如何我可以做这样的事情:
陈述的代码,我需要这样的东西: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;
}
答案 0 :(得分:5)
试试这个:
if(new string[] { "byby", "cow", "root" }.Contains(metroTextBox1.Text))
{
...
}
修改强>
与评论中的建议一样,您可以使用HashSet
代替Array
来存储您要比较的字词。 Contains
方法使用HashSet
的速度更快,因为它有O(1)
个查找,而Arrays
和Lists
有O(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))
{
...
}