получение типа T из IEnumerable <T> - PullRequest
95 голосов
/ 25 мая 2009

Есть ли способ получить тип T из IEnumerable<T> через отражение?

, например

у меня есть переменная IEnumerable<Child> info; я хочу получить тип ребенка через отражение

Ответы [ 12 ]

0 голосов
/ 01 февраля 2019

Вот как я обычно это делаю (с помощью метода расширения):

public static Type GetIEnumerableUnderlyingType<T>(this T iEnumerable)
    {
        return typeof(T).GetTypeInfo().GetGenericArguments()[(typeof(T)).GetTypeInfo().GetGenericArguments().Length - 1];
    }
0 голосов
/ 25 мая 2009

typeof(IEnumerable<Foo>). GetGenericArguments()[0] вернет первый общий аргумент - в данном случае typeof(Foo).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...