using System.Collections.Generic;
public static void Main()
var list1 = new List<string>();
var list2 = new List<double>();
var list3 = new List<MyCustomType>();
var var1 = list1.MakeDefault();
var var2 = list2.MakeDefault();
var var3 = list3.MakeDefault();
Console.WriteLine($"{var1}");
Console.WriteLine($"{var2}");
Console.WriteLine($"{var3}");
public static class GenericListExtensions
public static Tuple<T, Type> MakeDefault<T>(this List<T> list)
return Tuple.Create<T, Type>(default(T), typeof(T));
public class MyCustomType {}