将对象拆箱到其类型

时间:2010-03-22 07:51:22

标签: c#

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

基本上我给了ArrayList,数组列表实际上是intdouble的列表,或者也许是其他类型(它可以是,但它可以是全部{ {1}}或int,无混合)。现在,我必须返回doubleList<double>或其他列表,具体取决于实际类型。

List<int>

有什么想法吗?

3 个答案:

答案 0 :(得分:8)

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

public List<T> ConvertToList<T>(IEnumerable original)
{
    return original.Cast<T>().ToList();
}

(我已将参数推广到IEnumerable,因为我们在这里没有使用ArrayList特定的任何内容。)

答案 1 :(得分:3)

您可以使用Convert类。

var objT = (T)Convert.ChangeType(obj, typeof(T));

答案 2 :(得分:3)

您可以像这样定期播放

public List<T> ConvertToList<T>(ArrayList arr)
{
    var list1 = new List<T>();
    foreach(var obj in arr)
   { 
     // Like this 
     list1.Add((T)obj);

    }
    return list1;
}