Как преобразовать массив объектов в массив объектов другого типа в C #? - PullRequest
2 голосов
/ 15 июля 2009

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

объект [] объекты; // при условии, что он не пустой

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

Есть ли какой-либо способ, кроме апгрейда каждого элемента по отдельности?

Ответы [ 3 ]

3 голосов
/ 16 июля 2009

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

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

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

2 голосов
/ 15 июля 2009

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

newObjects = objects.Cast<ClassA>().ToArray();
1 голос
/ 15 июля 2009
using System.Linq;

newObjects = objects.Select(eachObject => (ClassA)eachObject).ToArray();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...