2016-11-16 12 views
2
XDocument doc = XDocument.Load(@"XMLFile1.xml"); 
Kullanıcılar _kullanici = new Kullanıcılar(); 
string password = pnb2.Password; 
foreach (XElement element2 in doc.Descendants("sif")) 
{ 
    foreach (XElement element1 in doc.Descendants("iban")) 
    { 
     foreach (XElement element3 in doc.Descendants("accountno")) 
     { 
      foreach (XElement element4 in doc.Descendants("money")) 
      {    
       foreach (XElement element8 in doc.Descendants("acc")) 
       { 
        string val1 = element2.Value; 
        string val2 = element1.Value; 
        string val3 = element3.Value; 
        string val4 = element4.Value; 
        string val8 = element8.Value; 
        if (val8 == "1" && val1 == "Abdullah") 
        {            
         lbl1.Content = ("İban Numaranız :" + val2); 
         lbl2.Content = ("Hesap Numaranız :" + val3); 
         lbl3.Content = ("Bakiyeniz :" + val4); 
        } 
       } 
      } 
     } 
    } 
} 

このループをどのように停止できますか? val8="1"val1=="Abdullah"の場合 私のデータを画面に表示したいのですが、このループは無限ループ に入っていますので、画面に何も表示されません。foreachループをCで停止する方法#

+1

(val8 = "1" とval1と== "アブドラ") 場合{リターン;} break' '@viveknuna –

+1

はここ – wudzik

+2

@wudzik良いだろう:ほぼ確実ではない - OPを終了したい場合その時点での5レベルネストされたループセット全体を別のメソッドに入れて戻すことがおそらく最良の方法です。 –

答えて

2

エラーを修正:

if (val8 == "1" && val1 == "Abdullah") 
{ 
    lbl1.Content = ("Iban Numaraniz :" + val2); 
    lbl2.Content = ("Hesap Numaraniz :" + val3); 
    lbl3.Content = ("Bakiyeniz :" + val4); 
    return; 
} 
+1

最初のループでval1チェクを変更すると、パフォーマンスが向上します: 'if(element2.Value!=" Abdullah ") 続行;' – mybirthname

+0

ありがとうございました:) –

1

あなたはgoto文の使用法を作ることができる:

if (val8 == "1" && val1 == "Abdullah") 
{ 
    lbl1.Content = ("İban Numaranız :" + val2); 
    lbl2.Content = ("Hesap Numaranız :" + val3); 
    lbl3.Content = ("Bakiyeniz :" + val4); 
    goto Finished; 
} 

ラベルFinishedは、最も外側のforeachXElement element2 in doc.Descendants("sif"))の閉じ括弧の後に配置する必要があります。あなたの仕事は次のようなものです:

Finished: 
    ; 

これは​​で確認できます。このように

+0

それはおそらく意図されていない最も内側のループから壊れます。 –

+0

@JonSkeet正しいよ!ありがとうございました:) – Christos

+0

@Downvoter、何が間違っているのか説明できたらうれしいです。前もって感謝します。 – Christos

1

たり、ループを停止するには、「ブレーク」を使用して試みることができます。

if (val8 == "1" && val1 == "Abdullah") 
{            
    lbl1.Content = ("İban Numaranız :" + val2); 
    lbl2.Content = ("Hesap Numaranız :" + val3); 
    lbl3.Content = ("Bakiyeniz :" + val4); 
    break; //stops the loop 
} 
関連する問題