如何对来自checkedlistbox C#的所有未检查项目进行循环?

时间:2015-05-14 14:53:49

标签: c# loops foreach checkedlistbox

我正在研究一个方法然后我意识到我有一个遍历所有checkedItems的foreach循环,而不是遍历所有未经检查的项目。

foreach ( object itemChecked in checkedListBox1.CheckedItems)
{(...)}

我想知道是否有办法在不改变代码的情况下做到这一点。 此致

2 个答案:

答案 0 :(得分:11)

两个选项:

  1. 循环浏览所有Items并针对CheckedItems
  2. 进行检查
  3. 使用LINQ。
  4. 选项1

    foreach (object item in checkedListBox1.Items)
    {
      if (!checkedListBox1.CheckedItems.Contains(item))
      {
        // your code
      }
    }
    

    选项2

    IEnumerable<object> notChecked = (from object item in checkedListBox1.Items
                                      where !checkedListBox1.CheckedItems.Contains(item)
                                      select item);
    
    foreach (object item in notChecked)
    {
      // your code
    }
    

答案 1 :(得分:1)

将项目作为可枚举的CheckBox投射,然后你可以循环:

foreach (CheckBox cb in checkedListBox1.Items.Cast<CheckBox>())
{
    if (!cb.Checked)
    {
        // your logic
    }
}