检查CheckedListBox是否为空

时间:2011-04-17 18:30:00

标签: c# winforms

我有一个小表单,用户在其中写入某个项目的名称,然后当他点击“添加”时,有一个语句需要检查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();

6 个答案:

答案 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 (集合已被修改;枚举操作可能无法执行。)

您应该在找到匹配时终止循环,然后获得用户确认,然后修改列表/集合。

所以:

  1. 尝试找到匹配项(如果循环遍历集合,则跳出循环)
  2. 获取用户确认
  3. 修改集合

答案 4 :(得分:0)

应该有类似checkedListBox1.Items.Count的东西。

答案 5 :(得分:0)

尝试:

if(checkedListBox.Items.Count()>0)
{
    // it means you have items
} 
else
{
    // it means you have empty checkedListBox
}