По некоторым причинам вне моего контроля мой метод должен быть определен для принятия одного параметра типа объекта. Но я знаю, что значение этого параметра на самом деле относится к типу List с неизвестным мне обобщенным параметром c.
Я пытаюсь привести этот объект к List , но понятия не имею, как сделать это, не зная, какой именно параметр generi c.
Я хотел бы сделать что-то вроде этого:
public static List<object> ConvertToList(object input)
{
if (input.GetType().GetGenericTypeDefinition().IsAssignableFrom(typeof(List<>)))
{
//Of course this does not work, because input might for example be of type List<string>
return (List<object>) input;
}
else
{
return null;
}
}
Я знаю, что если бы у меня было List<T>
вместо object input
, это было бы довольно просто, используя:
return input.Cast<object>()
, но, к сожалению, я застрял с параметром объекта. Любая идея, как я мог решить эту проблему?