我有一個擴展方法將通用列表轉換爲字符串。如何檢測某個對象是否屬於泛型列表並轉換爲所需的類型?
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();
}
我有一個對象類型的對象,它包含一個列表;該列表可以是List<string>
,List<int>
,List<ComplexType>
任何類型的列表。
有沒有一種方法可以檢測到這個對象是一個通用列表,因此轉換爲該特定通用列表類型來調用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();
}
列表不是一個數組;這也無助於OP找到'T'或調用方法 –