如何在 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)中将字符串格式的日期转换为另一种字符串格式[重复]