无论如何将对象拆箱到其真实类型?
基本上我给了ArrayList
,数组列表实际上是int
或double
的列表,或者也许是其他类型(它可以是,但它可以是全部{ {1}}或int
,无混合)。现在,我必须返回double
或List<double>
或其他列表,具体取决于实际类型。
List<int>
有什么想法吗?
答案 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;
}