Перепишите этот выход foreach в доход 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);
    }
}

Я хотел бы переписать их что-то вроде этого (что, конечно, не компилируется

public static IEnumerable<Color> GetThemColors(){
    GetThePrimaryIds().Select(id=>yield return GetColorById(id));
    GetTheOtherIds().Select(id=>yield return GetOtherColorsById(id));       
}

Ключевым моментом является то, что в моем первом фрагменте у меня есть два перечислителя foreach, которые я не знаю, как делать в linq, не теряя при этом своих функций отложенной загрузки.

Ответы на вопрос(1)

Ваш ответ на вопрос