web-dev-qa-db-ja.com

C#でforeachループから飛び出すにはどうすればよいですか?

要素の1つが要件を満たしている場合、C#でforeachループから抜け出すにはどうすればよいですか?

例えば:

foreach(string s in sList){
      if(s.equals("ok")){
       //jump foreach loop and return true
     }
    //no item equals to "ok" then return false
}
110
Steven Zack
foreach (string s in sList)
{
    if (s.equals("ok"))
        return true;
}

return false;

または、アイテムを見つけた後に他のことを行う必要がある場合:

bool found = false;
foreach (string s in sList)
{
    if (s.equals("ok"))
    {
        found = true;
        break; // get out of the loop
    }
}

// do stuff

return found;
187
mbillard

break;を使用すると、foreachループが終了します

76
Francis Gilbert

LINQルートを使用すると、明示的なループを回避できます。

sList.Any(s => s.Equals("ok"))
52
spender
foreach (var item in listOfItems) {
  if (condition_is_met)
    // Any processing you may need to complete here...
    break; // return true; also works if you're looking to
           // completely exit this function.
}

トリックを行う必要があります。 breakステートメントはループの実行を終了するだけですが、returnステートメントは明らかに関数全体を終了します。あなたの質問から判断すると、return trueを使用することができます。ステートメント。

27
Cody

breakを使用して、最も近い囲みループから飛び出すか、直接return trueを使用できます。

7
vrxacs

「break」ステートメントを使用します。あなたの質問に対する答えが文字通りあなたの質問の中にあるのはユーモラスです!ところで、簡単なGoogle検索で答えが得られたかもしれません。

4
dynamichael

どうですか:

return(sList.Contains("ok"));

あなたがやりたいのが「OK」をチェックして答えを返すだけなら、それはトリックをするはずです...

3
Dan Olesen

それはあなたの質問に対する直接的な答えではありませんが、あなたがやりたいことをするもっと簡単な方法があります。少なくとも.NET 3.5以降を使用している場合。 Enumerable.Contains と呼ばれます

bool found = sList.Contains("ok");
2
Can Gencer
foreach(string s in sList)
{
    if(s.equals("ok"))
    {
             return true;
    }
}
return false;
1
harryovers

ループから直接戻ります。

foreach(string s in sList){
   if(s.equals("ok")){
      return true;
   }
}

// if you haven't returned by now, no items are "ok"
return false;

または、breakを使用します。

bool isOk = false;
foreach(string s in sList){
   if(s.equals("ok")){
      isOk = true;
      break; // jump out of the loop
   }
}

if(isOk)
{
    // do something
}

ただし、あなたの場合、次のようなことをした方が良いかもしれません:

if(sList.Contains("ok"))
{
    // at least one element is "ok"
}
else
{
   // no elements are "ok"
}
1
Graham Clark