如何跳出C#中的foreach循环?
如果其中一个元素满足要求,我如何摆脱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; 
或者,如果您在find该项目后还需要做其他一些事情:
 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语句显然会终止整个函数。 从你的问题来看,你可能想要使用返回true; 声明。
 你可以使用从最近的循环中跳出来的break ,或者直接return true 
怎么样:
 return(sList.Contains("ok")); 
这应该做的伎俩,如果你想要做的是检查“确定”,并返回答案…
使用'break'语句。 我觉得你的问题的答案字面上是在你的问题的幽默! 顺便说一下,一个简单的谷歌search可以给你答案。
 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" } 
这不是对你的问题的直接回答,但有一个更简单的方法来做你想要的。 如果您至less使用.NET 3.5或更高版本。 它被称为Enumerable.Contains
 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; }