C#泛型类型转换有关问题

C#泛型类型转换问题
C#泛型类型转换有关问题

上图,参数d的值是object类型,实际值是list<XX> 类型,可以d.GetType()可以取到它的类型List<XX>,
现在有个函数方法:

        private int fun<T>(List<T> list){}

直接调用fun(d)会出现编译错误。
因为是底层,所以不能写死成 d as List<XX>。
请问应该怎么写才能把d作为参数调用fun()方法?
------解决方案--------------------
fun 方法里用到 T 具体类型的内容了没,如果只操作 List,试试改为 private int fun(IList list){},然后 (IList)d