6
Decir que tengo el siguiente código (contexto reducido como para mantener el alcance limitado pregunta)¿Reescribir este rendimiento de foreach a un rendimiento de linq?
public static IEnumerable<Color> GetThemColors(){
var ids = GetThePrimaryIds();
foreach (int id in ids){
yield return GetColorById(id);
}
ids = GetTheOtherIds();
foreach (int id in ids){
yield return GetOtherColorsById(id);
}
}
me gustaría volver a escribir a algo como esto (que por supuesto no se compila
public static IEnumerable<Color> GetThemColors(){
GetThePrimaryIds().Select(id=>yield return GetColorById(id));
GetTheOtherIds().Select(id=>yield return GetOtherColorsById(id));
}
.
El punto clave es que en mi primer fragmento tengo dos enumeradores foreach rendimiento, que no sé cómo hacerlo en LINQ sin perder mis características de carga perezosa
Gracias, no me di cuenta que el concat era flojo –
Por lo que sé, todos los métodos en Enumerable que devuelven un IEnumerable son flojos. – Joren
Es cierto, pero asumí que por alguna razón Concat devolvería un IList –