Я хочу преобразовать массив объектов в разные массивы разных типов объектов, например ниже
объект [] объектов;//предполагая, что он не пуст
CLassA [] newObjects = объекты как ClassA [];//предполагая, что объект класса ClassA является достоверным повышением
есть ли какой-либо другой способ, кроме повышения каждого элемента отдельно?
using System.Linq;
newObjects = objects.Select(eachObject => (ClassA)eachObject).ToArray();
Как этот пост предполагает, что вы можете сделать следующий трюк (непроверенный):
newObjects = (ClassA[])(object)objects;
Обратите внимание, что в С# 4.0 вам не нужно будет делать бросок, вы сможете напрямую назначить newObjects = objects
.
Или я думаю, вы могли бы попробовать что-то подобное для еще более короткого синтаксиса:
newObjects = objects.Cast<ClassA>().ToArray();