Скажем, у меня есть следующий код (контекст сужен, чтобы ограничить область действия вопроса)
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);
}
}
Я хотел бы переписать их примерно так (что, конечно, не компилируется
public static IEnumerable<Color> GetThemColors(){
GetThePrimaryIds().Select(id=>yield return GetColorById(id));
GetTheOtherIds().Select(id=>yield return GetOtherColorsById(id));
}
Ключевым моментом является то, что в моем первом фрагменте у меня есть два перечислителя foreach, которые я не знаю, как делать в linq, не теряя своих функций ленивой загрузки.