Как выпрыгнуть из цикла foreach в C#?
11 ответов
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;
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;.
можно использовать break
который выскакивает из ближайшего охватывающего цикла, или вы можете просто напрямую return true
Используйте оператор' break'. Я нахожу забавным, что ответ на ваш вопрос буквально в вашем вопросе! Кстати, простой поиск в Google мог бы дать вам ответ.
Как насчет:
return(sList.Contains("ok"));
Это должно сделать трюк, если все, что вы хотите сделать проверьте " ОК " и верните ответ ...
либо вернуться прямо из цикла:
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"
}
Это не прямой ответ на ваш вопрос, но есть гораздо более простой способ сделать то, что вы хотите. Если вы используете .NET 3.5 или более позднюю версию, по крайней мере. Она называется перечисли.Содержит
bool found = sList.Contains("ok");
var ind=0;
foreach(string s in sList){
if(s.equals("ok")){
return true;
}
ind++;
}
if (ind==sList.length){
return false;
}