Как преобразовать массив объектов в массив объектов другого типа в C #?

2

Я хочу преобразовать массив объектов в разные массивы разных типов объектов, например ниже

объект [] объектов;//предполагая, что он не пуст

CLassA [] newObjects = объекты как ClassA [];//предполагая, что объект класса ClassA является достоверным повышением

есть ли какой-либо другой способ, кроме повышения каждого элемента отдельно?

Теги:
object
arrays
casting

3 ответа

1
Лучший ответ
using System.Linq;

newObjects = objects.Select(eachObject => (ClassA)eachObject).ToArray();
  • 0
    Благодарю. Это то, что я искал.
3

Как этот пост предполагает, что вы можете сделать следующий трюк (непроверенный):

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

Обратите внимание, что в С# 4.0 вам не нужно будет делать бросок, вы сможете напрямую назначить newObjects = objects.

2

Или я думаю, вы могли бы попробовать что-то подобное для еще более короткого синтаксиса:

newObjects = objects.Cast<ClassA>().ToArray();
  • 0
    Это даже лучше. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню