Не совсем понятно, что вы имеете в виду. Вы можете легко проверить, можно ли присваивать типу:
List<string> list = new List<string>();
if (list is IEnumerable<object>) // True for .NET 4, false for earlier versions
{
...
}
В этом случае мы полагаемся на общую ковариацию IEnumerable<T>
. Не все интерфейсы поддерживают это, и классы, конечно, не поддерживают.
Если бы вы могли дать нам больше информации об общей картине - чего вы пытаетесь достичь - это действительно помогло бы.