c# - 将对象拆箱为其类型

标签 c#

有没有办法把一个对象拆箱成它的真实类型?

基本上我得到一个 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/

相关文章:

c# - 如何在 5 次不成功尝试后锁定用户帐户

c# - 将日期格式化为特定格式

c# - 使用不记名 token 时,带有 AD 身份验证的 Azure 函数会导致 401 Unauthorized

c# - 写入电子邮件 Windows 8.1 C# 时访问被拒绝异常

javascript - 如何下载文件并停留在MVC中的当前页面

C#/SQL 云应用程序 - 不同版本的客户端

c# - 将 Base64 字符串转换为 BitmapImage C# Windows Phone

c# - 升级到 ASP.NET MVC 2 - formCollection.ToValueProvider()

c# - 如何使用 linq 加入多对多关系

c# - 如何在运行时创建一个表达式以在 GroupBy() 中使用 Entity Framework?