有没有办法把一个对象拆箱成它的真实类型?
基本上我得到一个 ArrayList
, 数组列表实际上是 int
的列表或 double
,或者其他类型(它可以是其中之一,但它要么全部是 int
要么是 double
,不能混合)。现在,我将不得不返回 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;
}
有什么想法吗?
最佳答案
如果您使用的是 .NET 3.5,则有一种更简单的方法:
public List<T> ConvertToList<T>(IEnumerable original)
{
return original.Cast<T>().ToList();
}
(我将参数概括为 IEnumerable
,因为我们在这里没有使用任何特定于 ArrayList
的东西。)
关于c# - 将对象拆箱为其类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2490629/