我有一个小表单,用户在其中写入某个项目的名称,然后当他点击“添加”时,有一个语句需要检查checkedListBox中是否已存在相同的项目。
我正在寻找检查列表是空的还是某个项目的“if”语句。
private void button2_Click(object sender, EventArgs e)
{
foreach (var item in checkedListBox1.Items)
{
if (itemName.Text == item.ToString())
{
DialogResult result = MessageBox.Show("?", "Question", MessageBoxButtons.YesNoCancel);
if (result == DialogResult.Yes)
{
checkedListBox1.Items.Add(itemName.Text);
}
else if (result == DialogResult.No)
{
//clear the forms
}
}
else
{
checkedListBox1.Items.Add(itemName.Text);
timeLeft = 2;
timer1.Start();
}
}
}
//checkedListBox1.Items.Add(itemName.Text);
//timeLeft = 2;
//timer1.Start();
答案 0 :(得分:7)
if(checkedListBox1.Items.Count > 0) {
// It contains items
} else {
// It doesn't
}
编辑: 用于检查CheckedListBox是否为空,然后
if(checkedListBox1.Items.Contains(theItemToCheck)) {
// The item is already in the CheckedListBox
}
检查项目是否已经在CheckedListBox中。
答案 1 :(得分:1)
您可以使用该集合的Contains方法检查您的ListBox
是否包含该项目:
if (checkListBox1.Items.Contains(itemName.text))
{
//do something
}
答案 2 :(得分:1)
你能看看LINQ吗?
var exists = checkedListBox1.Items.Where(item => item == itemName.Text).Any();
if(exists)
item exists
else
item doesn't exists
答案 3 :(得分:1)
好吧,您的代码无法正常工作,因为您可能无法修改正在迭代的集合。
尝试这样做会导致InvalidOperationException
(集合已被修改;枚举操作可能无法执行。)
您应该在找到匹配时终止循环,然后获得用户确认,然后修改列表/集合。
所以:
答案 4 :(得分:0)
应该有类似checkedListBox1.Items.Count的东西。
答案 5 :(得分:0)
尝试:
if(checkedListBox.Items.Count()>0)
{
// it means you have items
}
else
{
// it means you have empty checkedListBox
}