Я хочу определить, является ли тип типа типа универсального типа ( "T" ) типом коллекции. Обычно я отправлял T через Generic.List, но это мог быть любой тип коллекции, поскольку это используется в вспомогательной функции.
Было бы лучше проверить, реализует ли он IEnumerable <T> ?
Если да, то каким будет выглядеть код?
Обновление 14:17 GMT + 10 Возможно расширение на решение здесь (однако работает только для List <T> not IEnumerable <T> , когда это необходимо, если List получает?)
T currentObj;
// works if currentObj is List<T>
currentObj.GetType().GetGenericTypeDefinition() == typeof(List<>)
// does not work if currentObj is List<T>
currentObj.GetType().GetGenericTypeDefinition() == typeof(IEnumerable<>)