Я пытаюсь определить, является ли конкретный экземпляр объекта Type общим "IEnumerable"...
Лучшее, что я могу придумать, это:
// theType might be typeof(IEnumerable<string>) for example... or it might not
bool isGenericEnumerable = theType.GetGenericTypeDefinition() == typeof(IEnumerable<object>).GetGenericTypeDefinition()
if(isGenericEnumerable)
{
Type enumType = theType.GetGenericArguments()[0];
etc. ...// enumType is now typeof(string)
Но это кажется немного косвенным - есть ли более прямой/элегантный способ сделать это?