【发布时间】:2015-07-26 06:07:41
【问题描述】:
我正在研究一种方法,然后我意识到我有一个遍历所有已检查项的 foreach 循环,而不是遍历所有未检查项。
foreach ( object itemChecked in checkedListBox1.CheckedItems)
{(...)}
我想知道是否有办法在不过多更改代码的情况下做到这一点。 问候
【问题讨论】:
标签: c# loops foreach checkedlistbox
我正在研究一种方法,然后我意识到我有一个遍历所有已检查项的 foreach 循环,而不是遍历所有未检查项。
foreach ( object itemChecked in checkedListBox1.CheckedItems)
{(...)}
我想知道是否有办法在不过多更改代码的情况下做到这一点。 问候
【问题讨论】:
标签: c# loops foreach checkedlistbox
两种选择:
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
}
【讨论】:
将项目转换为 CheckBox 可枚举然后你可以循环:
foreach (CheckBox cb in checkedListBox1.Items.Cast<CheckBox>())
{
if (!cb.Checked)
{
// your logic
}
}
【讨论】: