È possibile utilizzare yield
in linea con il metodo ForEach
?foreach vs ForEach utilizzando yield
private static IEnumerable<string> DoStuff(string Input)
{
List<string> sResult = GetData(Input);
sResult.ForEach(x => DoStuff(x));
//does not work
sResult.ForEach(item => yield return item;);
//does work
foreach(string item in sResult) yield return item;
}
in caso contrario, c'è un motivo per cui non funziona?
dare un'occhiata a: http://stackoverflow.com/q/1217729/1859022 – user1859022
In primo luogo, * Perché * utilizzare questa sintassi anziché '.Select (x => DoStuff (x))'? Second, 'ForEach' non restituisce un risultato, quindi provare a restituire qualcosa con' return' o 'yield' non è valido –
@PanagiotisKanavos' Select' non funziona combinato con un approccio ricorsivo – fubo