using System.Collections.Generic;
public static class Program {
public static bool IsIEnumerableOfT (this Type type) =>
type.GetInterfaces().Any(x => x.IsGenericType && x.GetGenericTypeDefinition() == typeof(IEnumerable<>));
static bool Test <T> (T obj) => typeof(T).IsIEnumerableOfT();
public static void Main () {
Console.WriteLine(typeof(List<int>).IsIEnumerableOfT());
Console.WriteLine(typeof(IList<int>).IsIEnumerableOfT());
Console.WriteLine(typeof(IEnumerable<int>).IsIEnumerableOfT());
List<int> obj = new List<int>();
Console.WriteLine(Test(obj));
IEnumerable<int> e = obj;
Console.WriteLine(Test(e));