Я вызываю функцию, которая возвращает объект, и в определенных обстоятельствах этот объект будет списком.
GetType для этого объекта может дать мне:
{System.Collections.Generic.List`1[Class1]}
или
{System.Collections.Generic.List`1[Class2]}
и т.д.
Мне все равно, что это за тип, все, что я хочу, это граф.
Я пробовал:
Object[] methodArgs=null;
var method = typeof(Enumerable).GetMethod("Count");
int count = (int)method.Invoke(list, methodArgs);
но это дает мне AmbiguousMatchException, которое я не могу обойти, не зная типа.
Я пробовал кастовать в IList, но получаю:
Невозможно привести объект типа 'System.Collections.Generic.List'1 [ClassN]' к типу System.Collections.Generic.IList'1 [System.Object] '.
UPDATE
Маркс ответ ниже на самом деле правильно. Причина, по которой это не сработало, заключается в том, что у меня есть:
using System.Collections.Generic;
вверху моего файла. Это означает, что я всегда использовал универсальные версии IList и ICollection. Если я укажу System.Collections.IList, тогда все будет хорошо.