以编程方式在 CheckListBox 中设置选中的项目

Programmatically set checked item in CheckListBox

我正在尝试根据某些条件以编程方式在清单框中设置选中的项目。这是代码:

int chItm = 0;

foreach (DataRowView row in chLBDatumi.Items)
 {                
     if (row["DatumGO"].ToString().Equals(myListItems[chItm].ToString()))
     {
          chLBDatumi.SetItemChecked(chItm, true);
     }
     chItm++;                
 }

但它抛出异常:

List that this enumerator is bound to has been modified. An enumerator can only be used if the list does not change.

还有其他方法可以做到吗?

使用 for 循环代替 foreach:

for (int i = 0; i < chLBDatumi.Items.Count(); i++)
{                
    if (chLBDatumi.Items[i]["DatumGO"].ToString().Equals(myListItems[chItm].ToString()))
     {
         chLBDatumi.SetItemChecked(chItm, true);
     }
    chItm++;                
}