打破foreach循环没有完成

时间:2012-06-19 13:19:28

标签: c#

  

可能重复:
  Exiting Foreach loop in C#

我需要比较两个注册表项,即HKEY_USER和HKEY_CURRENT_USER。

I am using two methods..both are having foreach loops..

第一种方法调用另一种也具有foreach循环的方法。执行所需的操作后,条件应该转到第一个方法中的第一个循环,以及条件转到下一个循环的位置。

简单地说,打破内循环并保持外循环。

我想在执行特定方法后打破内循环..

        string[] mainkeys1 = mckey.GetSubKeyNames();

        foreach (string skey1 in mainkeys1)
         {
          ckey = skey1;

           mckey = l1.OpenSubKey(_ckey);

           int mcnt2 = mckey.SubKeyCount;

           if (mcnt2 > 0)
            {
             Getvaluescur();
             RegistryKey l2 = mckey;

             string[] mainkeys2 = mckey.GetSubKeyNames();

                            foreach (string skey2 in mainkeys2)
                            {
                                ckey = skey2;

                                mckey = l2.OpenSubKey(_ckey);

                                int mcnt3 = _mckey.SubKeyCount;

                                if (mcnt3 > 0)
                                  ....
                                  ....

上面的代码也在Foreach循环中。 我想在执行所需的方法之后打破循环..

任何人都可以指导我在没有完成的情况下打破Foreach循环..

谢谢..

4 个答案:

答案 0 :(得分:3)

只需在完成前添加一个break;即可结束循环。

答案 1 :(得分:2)

break;关键字用于打破编程循环。

continue;关键字用于打破循环,让循环再次循环。

请参考,

符: http://msdn.microsoft.com/en-us/library/adbctzc4(v=vs.80).aspx

继续: http://msdn.microsoft.com/en-us/library/923ahwt1(v=vs.71).aspx http://msdn.microsoft.com/en-us/library/923ahwt1.aspx

答案 2 :(得分:0)

使用指令break在满足某些特定条件时停止循环执行

foreach (string skey2 in mainkeys2)
{
   ...
   if (mcnt3 > 0)
   {
       break; 
   }
   ...
}

答案 3 :(得分:0)

听起来你需要一个break;,你想要循环你当前的结束。

但是,您也可以使用continue;保持当前循环,但跳到下一次迭代。

如果你想让它摆脱两个for循环,你必须在第一个循环中有一个布尔变量(如bool breakLoop = false;),并在跳转当前循环之前将其设置为true,并放置和如果在for循环之后你就爆发了,然后如果breakLoop为真则调用,再调用另一个中断。