using System.Collections.Generic;
public static void Main()
public static void Foo<T>(T value) { Console.WriteLine("Foo a single value"); }
public static void Foo<T>(IEnumerable<T> values) { Console.WriteLine("Foo multiple values"); }
Foo(Enumerable.Range(1, 42));
Foo(new List<int> { 1, 2, 3 });
Foo((new[] { 1, 2, 3 }).AsEnumerable());
Foo((new List<int> { 1, 2, 3 }).AsEnumerable());