2012-08-02 53 views
0

我有一个代码在asp.net/c#中检查checkedlistbox复选框。如何根据给出的代码跳过foreach循环?

foreach (ListItem item in cbxlFeatures.Items) 
{ 
    foreach (DataRow row in dt.Rows) 
    { 
     if (item.Value.Equals(row["Id"].ToString())) 
     { 
      item.Selected = Convert.ToBoolean(row["Id"]); 
     // whenever this condition is met i need my 
     // loop to skip the remianing iterations and start with next one. 

     } 
     break; 
    } 
} 

更新

我想,我是不是清楚我的问题。假设我的数据表中有1到10个ID。凡7,8,9有价值假和休息。此ID也显示在复选框列表中。只是我的真假值不同。所以我要求检查条件并将值t/f设置为复选框。一旦复选框被设置为检查,循环将跳过。

+0

试试这个=>继续; – saber 2012-08-02 10:44:18

+0

你是否想在'item == true'的内循环中继续,或者你是否想要跳转到下一个复选框,然后忽略之前检查过的行? – 2012-08-02 10:47:02

+0

......你让我......亚当 – 2012-08-02 10:49:32

回答

1

您可以使用关键字continue;,如下面的代码

foreach (ListItem item in cbxlFeatures.Items) 
{ 
    foreach (DataRow row in dt.Rows) 
    { 
     if (item.Value.Equals(row["Id"].ToString())) 
     { 
      item.Selected = Convert.ToBoolean(row["Id"]); 

      // this is what you need here 
      continue; 
     } 
     break; 
    } 
} 

如果你有更多问题让我知道。

谢谢Ankur

5

我认为你正在寻找的关键字continue;

+0

它实际上是“继续”,而不是“继续”。 – 2012-08-02 10:45:01

+0

修正了它!谢谢。 – 2012-08-02 10:45:31

+0

查看adams的评论 – 2012-08-02 10:49:55

3

请使用继续关键字

foreach (ListItem item in cbxlFeatures.Items) 
{ 
    foreach (DataRow row in dt.Rows) 
    { 
     if (item.Value.Equals(row["Id"].ToString())) 
     { 
      item.Selected = Convert.ToBoolean(row["Id"]); 
     continue; 

     } 
     break; 
    } 
} 
+0

我想,我的问题并不清楚。假设我的数据表中有1到10个ID。凡7,8,9有价值假和休息。此ID也显示在复选框列表中。只是我的真假值不同。所以我要求检查条件并将值t/f设置为复选框。一旦复选框被设置为检查,循环将跳过。 – 2012-08-02 10:48:22

+0

@Amit然后你的带有'break'的示例代码应该可以工作,那它怎么不起作用? – 2012-08-02 10:49:33