-1

重複の可能性:
C# での Foreach ループの終了

HKEY_USER と HKEY_CURRENT_USER という 2 つのレジストリ キーを比較する必要があります。

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

4 に答える 4

3

break;完了する前にループを終了したい場所を追加するだけです。

于 2012-06-19T13:21:45.873 に答える
2

break;キーワードは、プログラミングのループを中断するために使用されます。

andcontinue;キーワードは、ループを中断し、ループを再びループさせるために使用されます。

ご参照ください、

ブレーク: 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

于 2012-06-19T13:25:43.833 に答える
0

break;現在のループを終了する場所が必要なように聞こえます。

ただし、continue;現在のループにとどまり、次の反復にスキップするために使用することもできます。

両方の for ループから抜け出したい場合は、最初のループ内にブール変数 ( などbool breakLoop = false;) を設定し、現在のループをジャンプする前にそれを true に設定し、抜けた for ループの直後に and if を配置する必要があります。 of を呼び出し、breakLoop が true の場合は別のブレークを呼び出します。

于 2012-06-19T13:28:26.340 に答える
0

命令を使用して、break特定の条件が満たされたときにループの実行を停止します

foreach (string skey2 in mainkeys2)
{
   ...
   if (mcnt3 > 0)
   {
       break; 
   }
   ...
}
于 2012-06-19T13:21:42.643 に答える