Перепишите этот выход foreach в доход linq?

Скажем, у меня есть следующий код (контекст сужен, чтобы ограничить область действия вопроса)

public static IEnumerable 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 GetThemColors(){
    GetThePrimaryIds().Select(id=>yield return GetColorById(id));
    GetTheOtherIds().Select(id=>yield return GetOtherColorsById(id));       
}

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

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

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