using System.Collections.Generic;
public static void Main()
After(ForEach(Sample(10), v => item = v), () => Console.WriteLine(item));
After(ForEach(Sample(10), v => item = v).ToList(), () => Console.WriteLine(item));
static IEnumerable<int> Sample(int count)
Console.WriteLine("Sample Invoked");
for (int i = 0; i < count; i++)
static IEnumerable<int> ForEach(IEnumerable<int> items, Action<int> action)
Console.WriteLine("ForEach Invoked:");
foreach (int item in items)
static void After(IEnumerable<int> items, Action action)