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.

questionAnswers(1)

yourAnswerToTheQuestion