如何在 C# 中将对象数组向上转换为另一种类型的对象数组?

Posted

技术标签:

【中文标题】如何在 C# 中将对象数组向上转换为另一种类型的对象数组?【英文标题】:how to upcast object array to another type of object array in C#? 【发布时间】:2010-11-11 00:40:12 【问题描述】:

我想将对象数组向上转换为不同对象类型的不同数组,如下所示

object[] 对象; // 假设它是非空的

CLassA[] newObjects = 对象作为 ClassA[]; // 假设 ClassA 的对象是有效的向上转型

除了单独向上转换每个元素之外,还有其他方法吗?

【问题讨论】:

【参考方案1】:

正如this post 建议的那样,您也许可以执行以下技巧(未经测试):

newObjects = (ClassA[])(object)objects;

请注意,在 C# 4.0 中您不需要强制转换,您可以直接分配 newObjects = objects

【讨论】:

【参考方案2】:

或者我想你可以尝试这样的更短的语法:

newObjects = objects.Cast<ClassA>().ToArray();

【讨论】:

【参考方案3】:
using System.Linq;

newObjects = objects.Select(eachObject => (ClassA)eachObject).ToArray();

【讨论】:

谢谢。这就是我一直在寻找的。​​span>

以上是关于如何在 C# 中将对象数组向上转换为另一种类型的对象数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中将 datagridiew 中未包含的其他数据库值显示为另一种形式? [关闭]

如何在swift(ios)中将字符串格式的日期转换为另一种字符串格式[重复]

在JS中将对象数组减少为hashmap

在java中将日期从一种格式转换为另一种格式[重复]

OpenCV中将MAT类型的对象作为InputArray类型的对像传递给函数

通过重新解释原始字节从一种类型的 numpy 数组转换为另一种类型