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

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

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

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

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

【问题讨论】:

    标签: c# arrays object casting


    【解决方案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>
        猜你喜欢
        • 2021-04-23
        • 1970-01-01
        • 2021-12-13
        • 1970-01-01
        • 2019-12-15
        • 1970-01-01
        • 1970-01-01
        • 2021-09-09
        相关资源
        最近更新 更多