【问题标题】:How to skip the foreach loop based on the code given?如何根据给出的代码跳过 foreach 循环?
【发布时间】:2012-08-02 10:41:33
【问题描述】:

我有一个代码检查asp.net/c# 中的checkedlistbox 复选框。

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 的值为 false,其余为 true。而且这个 id 也显示在复选框列表上。只是我的真/假值不同。所以我要求检查条件并将值 t/f 设置为复选框。一旦复选框设置为选中,循环将跳过。

【问题讨论】:

  • 您是要在item == true 上继续内循环,还是要跳到下一个复选框然后忽略之前选中的行?
  • 正是...你找到了我,...亚当

标签: c# asp.net foreach


【解决方案1】:

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

【讨论】:

  • 实际上是continue,而不是Continue。
【解决方案2】:

请使用 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"]); 
         continue;

        }
         break;
     }
 }

【讨论】:

  • 我想,我的问题并不清楚。假设我的数据表中有 1 到 10 个 ID。其中 7,8,9 的值为 false,其余为 true。而且这个 id 也显示在复选框列表上。只是我的真/假值不同。所以我要求检查条件并将值 t/f 设置为复选框。一旦复选框设置为选中,循环将跳过。
  • @Amit 那么你的带有break 的示例代码应该可以工作,那么它是怎么不工作的呢?
【解决方案3】:

您可以使用关键字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;
     }
 }

如果您有更多问题,请告诉我。

感谢安库

【讨论】:

    猜你喜欢
    • 2012-03-12
    • 2019-05-23
    • 1970-01-01
    • 2012-01-18
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    相关资源
    最近更新 更多