C# – How to check if a given value is a generic list


public bool IsList(object value)
        Type type = value.GetType();
        // Check if type is a generic list of any type

What's the best way to check if the given object is a list, or can be cast to a list?

Best Solution

For you guys that enjoy the use of extension methods:

public static bool IsGenericList(this object o)
    var oType = o.GetType();
    return (oType.IsGenericType && (oType.GetGenericTypeDefinition() == typeof(List<>)));

So, we could do: