Как определить, относится ли объект к типу универсального списка и привести к требуемому типу?

У меня есть метод расширения для преобразования общего списка в строку.

public static string ConvertToString<T>(this IList<T> list)
{
    StringBuilder sb = new StringBuilder();
    foreach (T item in list)
    {
        sb.Append(item.ToString());
    }
    return sb.ToString();
}

У меня есть объект типа object, который содержит список; список может быть List , List , List список любого типа.

Есть ли способ, которым я могу определить, что этот объект является общим списком, и, следовательно, привести к этому конкретному общему типу списка для вызова метода ConvertToString ?

//ignore whats happening here
//just need to know its an object which is actually a list
object o = new List<int>() { 1, 2, 3, 4, 5 };

if (o is of type list)
{
    string value = (cast o to generic type).ConvertToString();
}
7
задан David 11 May 2011 в 13:11
поделиться