将对象拆箱到其类型

Gra*_*ton 2 c#

无论如何将对象拆箱到其真实类型?

基本上我给了一个ArrayList,数组列表实际上是一个列表int或者double,或者可能是其他类型(它可以是,但它是全部intdouble不混合).现在,我将不得不返回一个List<double>List<int>其他列表,具体取决于实际类型.

public List<T> ConvertToList<T>(ArrayList arr)
{
    var list1 = new List<T>();
    foreach(var obj in arr)
   {
     // how to do the conversion?
     var objT = ??
     list1.Add(objT);
    }
    return list1;
}
Run Code Online (Sandbox Code Playgroud)

任何的想法?

Jon*_*eet 8

如果您使用的是.NET 3.5,则可以使用更简单的方法:

public List<T> ConvertToList<T>(IEnumerable original)
{
    return original.Cast<T>().ToList();
}
Run Code Online (Sandbox Code Playgroud)

(我已经将参数推广到IEnumerable我们没有使用任何特定的东西ArrayList.)