¿Cómo salgo de un foreach
bucle en C # si uno de los elementos cumple con el requisito?
Por ejemplo:
foreach(string s in sList){
if(s.equals("ok")){
//jump foreach loop and return true
}
//no item equals to "ok" then return false
}
return "ok" in sList:
: ¿no hay algo comparable en C #?Respuestas:
Alternativamente, si necesita hacer otras cosas después de haber encontrado el artículo:
fuente
bool found = callFunctionInFirstCodeSnipper(list); // do stuff
Use
break;
y esto saldrá del bucle foreachfuente
Puede evitar bucles explícitos tomando la ruta LINQ:
fuente
Contains("ok")
.Contains
asume que estás iterando sobre unICollection<T>
.Any
funcionaría en cualquier cosa que sea de tipoIEnumerable<T>
, y en este caso la pregunta no indica explícitamente sobre qué tipo de colección está iterando (List
aunque es una suposición bastante justa).Debería hacer el truco. La declaración de interrupción simplemente terminará la ejecución del bucle, mientras que la declaración de retorno obviamente terminará la función completa. A juzgar por su pregunta, es posible que desee utilizar el retorno verdadero; declaración.
fuente
Puede usar
break
qué salta del bucle de cierre más cercano, o puede simplemente directamentereturn true
fuente
Use la declaración 'break'. ¡Me parece gracioso que la respuesta a su pregunta esté literalmente en su pregunta! Por cierto, una simple búsqueda en Google podría haberle dado la respuesta.
fuente
qué tal si:
Eso debería ser el truco si todo lo que quieres hacer es buscar un "ok" y devolver la respuesta ...
fuente
No es una respuesta directa a su pregunta, pero hay una manera mucho más fácil de hacer lo que quiere. Si está utilizando .NET 3.5 o posterior, al menos. Se llama Enumerable. Contiene
fuente
fuente
Regrese directamente del bucle:
O use
break
:Sin embargo, en su caso, podría ser mejor hacer algo como esto:
fuente
fuente
$
que no es válida la sintaxis de C #.var
es un perfectamente válido C # palabra clave, por lo que está bien