Przepisz tę wydajność foreach na wydajność linq?
Powiedz, że mam następujący kod (kontekst zawężony, aby ograniczyć zakres pytania)
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);
}
}
Chciałbym je przepisać do czegoś takiego (co oczywiście nie kompiluje)
public static IEnumerable<Color> GetThemColors(){
GetThePrimaryIds().Select(id=>yield return GetColorById(id));
GetTheOtherIds().Select(id=>yield return GetOtherColorsById(id));
}
Kluczową sprawą jest to, że w moim pierwszym fragmencie mam dwa wyliczniki foreach, które dają, czego nie wiem, jak to zrobić w linq, nie tracąc funkcji leniwego ładowania.