0

与 2008 年相比 - C#

我的checklistbox有问题,谁能帮助我,或者给我一些想法我应该怎么做才能解决这个问题..

我有一个 Checkedlistbox 里面有工作。我想检查从数据集中分配给员工的工作,并只检查那些工作是否为真。问题是当它检查第一个工作为真时,它从 foreach 循环中出来并引发异常。“此枚举器绑定的列表已被修改。只有列表没有更改时,才能使用枚举器。” 这是我写的代码,

string sSQL="select JOBNO from RentalVehicle";
dataset ds = munshi.executeDS(sSQL,"Jobs").Tables["Jobs"];

foreach(DataRow Erow in ds.Rows)    
{
    int CLB_RowNo = 0;

    //Jobdetail(2010-0191, HWS-01, ISB-6,KAD2-2, MAINT-01, PMO-2011-0052)
    string[] JNos = Erow["JOBNO"].ToString().Split(', ');   

    string SelectedJob = "", AJob = "";

    // Looping CLB_JobNo(CheckedListBox)
    foreach (Object obj in CLB_JobNo.Items) 
    {
        int i = 0;
        SelectedJob = obj.ToString();
        foreach (string part in JNos)
        {
            AJob = JNos[i].ToString();
            if (SelectedJob == AJob)
            {
                CLB_JobNo.SetItemChecked(CLB_RowNo, true);
            }
            i++;
        }
        CLB_RowNo++;
    }
}   
4

1 回答 1

0

您可以先创建一个项目数组,然后对其进行迭代。

 Object[] jobs = CLB_JobNo.Items.Cast<Object>().ToArray();
 foreach (Object obj in jobs)
 {
     SelectedJob = obj.ToString();
     if (JNos.Contains(SelectedJob))
     {
         CLB_JobNo.SetItemChecked(CLB_RowNo, true);
     }
     CLB_RowNo++;
 }
于 2012-10-03T06:43:18.690 回答