我正在研究一个方法然后我意识到我有一个遍历所有checkedItems的foreach循环,而不是遍历所有未经检查的项目。
foreach ( object itemChecked in checkedListBox1.CheckedItems)
{(...)}
我想知道是否有办法在不改变代码的情况下做到这一点。 此致
答案 0 :(得分:11)
两个选项:
Items
并针对CheckedItems
。选项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
}
}