class Program { public static IEnumerable MyListOfStrings(string[] sa) { foreach (var s in sa) { Console.WriteLine("about to yield return"); yield return s; } } static void Main(string[] args) { string[] sa = new[] { "aaa", "bbb", "ccc" }; foreach (string s in MyListOfStrings(sa)) Console.WriteLine(s); } }