6
Dire che ho il seguente codice (contesto ristretto da mantenere la portata domanda limitata)Riscrivi questa resa foreach a un rendimento 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);
}
}
vorrei riscriverle a qualcosa di simile (che fuori rotta non può essere compilato
public static IEnumerable<Color> GetThemColors(){
GetThePrimaryIds().Select(id=>yield return GetColorById(id));
GetTheOtherIds().Select(id=>yield return GetOtherColorsById(id));
}
.
Il punto chiave è che nel mio primo frammento di ho due enumeratori foreach rendimento, che io non so come fare in LINQ senza perdere le mie caratteristiche pigro-caricamento
Grazie, non ho capito che il concat era pigro –
Per quanto ne so tutti i metodi su Enumerable che restituiscono un IEnumerable sono pigri. – Joren
Vero, ma per qualche motivo Concat mi ha restituito un IList –