如何跳出C#中的foreach循环
本文关键字:foreach 循环 中的 何跳出 | 更新日期: 2023-09-27 18:00:31
如果其中一个元素满足要求,我如何在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
}
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;
使用break;
,这将退出foreach循环
您可以通过使用LINQ路由来避免显式循环:
sList.Any(s => s.Equals("ok"))
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"语句来转义循环。
您可以使用从最近的封闭循环中跳出来的break
,也可以直接使用return true
怎么样:
return(sList.Contains("ok"));
如果你想做的都是这样的话是检查"ok"并返回答案。。。
foreach(string s in sList)
{
if(s.equals("ok"))
{
return true;
}
}
return false;
直接从循环中返回:
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");
这是一个老问题,但我只是想添加这个答案
你也可以使用像这个一样的While
循环
string sample = "";
while(sample == "")
{
foreach(DataRow row in DataTable.Rows
sample = row["somecolumn"].ToString();
}
一旦字符串"sample"不再="循环将结束
var ind=0;
foreach(string s in sList){
if(s.equals("ok")){
return true;
}
ind++;
}
if (ind==sList.length){
return false;
}