Как проверить, является ли переменная IEnumerable какого-то типа

в основном я создаю очень общий шаблон T4, и одна из вещей, которые мне нужно сделать, это сказать print variable.ToString ( ) . Однако я хочу, чтобы он оценивал списки и переходил через них, а вместо этого печатал ListItem.ToString () Мой шаблон T4 не знает, какой тип переменная будет опережать время, поэтому это так универсально.

Но мой текущий код, который генерируется, выглядит так:

if(variable!=null)
  if(variable is IEnumerable) //error here
    foreach(var item in variable)
      Write(item.ToString());

Я получаю ошибку компилятора в отмеченной строке «Для использования универсального типа System.Generic.Collections.IEnumerable требуется один аргумент типа»

Мне все равно, какой это тип, я просто хочу знать если вы можете использовать foreach через переменную. Какой код мне следует использовать вместо этого?

44
задан Earlz 4 January 2011 в 03:19
поделиться