foreachÖğelerden biri gereksinimi karşılıyorsa C # 'da bir döngüden nasıl çıkabilirim?
Örneğin:
foreach(string s in sList){
if(s.equals("ok")){
//jump foreach loop and return true
}
//no item equals to "ok" then return false
}
foreachÖğelerden biri gereksinimi karşılıyorsa C # 'da bir döngüden nasıl çıkabilirim?
Örneğin:
foreach(string s in sList){
if(s.equals("ok")){
//jump foreach loop and return true
}
//no item equals to "ok" then return false
}
Yanıtlar:
foreach (string s in sList)
{
if (s.equals("ok"))
return true;
}
return false;
Alternatif olarak, öğeyi bulduktan sonra başka şeyler yapmanız gerekirse:
bool found = false;
foreach (string s in sList)
{
if (s.equals("ok"))
{
found = true;
break; // get out of the loop
}
}
// do stuff
return found;
bool found = callFunctionInFirstCodeSnipper(list); // do stuff
Kullanın break;ve bu foreach döngüsünden çıkacaktır
LINQ rotasını alarak açık döngüleri önleyebilirsiniz:
sList.Any(s => s.Equals("ok"))
Contains("ok").
Containsbir ICollection<T>. Bu Anytürden herhangi bir şey üzerinde çalışır IEnumerable<T>ve bu durumda soru, ne tür bir koleksiyonun üzerinde yinelendiğini açıkça göstermez ( Lista oldukça makul bir tahmindir).
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.
}
Hile yapmalı. Break ifadesi döngünün yürütülmesini sonlandırırken, return ifadesi açıkça tüm işlevi sonlandıracaktır. Sorunuzdan yola çıkarak doğru dönüşünü kullanmak isteyebilirsiniz; Beyan.
'Break' ifadesini kullanın. Sorunuzun cevabının tam anlamıyla sorunuzda olması komik buluyorum! Bu arada, basit bir Google araması size cevabı verebilirdi.
ne dersin:
return(sList.Contains("ok"));
Yapmak istediğiniz tek şey "tamam" olup olmadığını kontrol etmek ve yanıtı geri vermekse hile yapmalı ...
Sorunuzun doğrudan cevabı değil ama istediğinizi yapmanın çok daha kolay bir yolu var. En azından .NET 3.5 veya üstünü kullanıyorsanız. Buna Numaralandırılabilir denir.
bool found = sList.Contains("ok");
foreach(string s in sList)
{
if(s.equals("ok"))
{
return true;
}
}
return false;
Ya döngüden çıkıp dönün:
foreach(string s in sList){
if(s.equals("ok")){
return true;
}
}
// if you haven't returned by now, no items are "ok"
return false;
Veya şunu kullanın 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
}
Ancak, sizin durumunuzda şöyle bir şey yapmak daha iyi olabilir:
if(sList.Contains("ok"))
{
// at least one element is "ok"
}
else
{
// no elements are "ok"
}
var ind=0;
foreach(string s in sList){
if(s.equals("ok")){
return true;
}
ind++;
}
if (ind==sList.length){
return false;
}
$geçerli bir C # sözdizimi değil.
vartamamen geçerli bir C # anahtar sözcüğü, bu yüzden iyisiniz
return "ok" in sList:- C # ile karşılaştırılabilir bir şey yok mu?