static void Main(string[] args) { IEnumerable errors = GetErrors(); foreach (string error in errors) { Console.WriteLine(error); } Console.ReadKey(); } private static IEnumerable GetErrors() { return GetMoreErrors().Concat(GetOtherErrors()) .Concat(GetValidationErrors()) .Concat(AnyMoreErrors()) .Concat(ICantBelieveHowManyErrorsYouHave()); } private static IEnumerable GetMoreErrors() { Console.WriteLine("Within GetMoreErrors"); yield return "GetMoreErrors"; } private static IEnumerable GetOtherErrors() { Console.WriteLine("Within Method GetOtherErrors"); yield return "OtherErrors"; } private static IEnumerable GetValidationErrors() { Console.WriteLine("Within GetValidationErrors"); yield return "GetValidationErrors"; } private static IEnumerable AnyMoreErrors() { Console.WriteLine("Within AnyMoreErrors"); yield return "AnymoreErrors"; } private static IEnumerable ICantBelieveHowManyErrorsYouHave() { Console.WriteLine("Within ICantBelieveHowManyErrorsYouHave"); yield return "ICantBelieveHowManyErrorsYouHave"; } Output: Within GetMoreErrors GetMoreErrors Within Method GetOtherErrors OtherErrors Within GetValidationErrors GetValidationErrors Within AnyMoreErrors AnymoreErrors Within ICantBelieveHowManyErrorsYouHave ICantBelieveHowManyErrorsYouHave