Конвертирование с помощью интерфейса в C#

Можно ли преобразовать массив объектов одного типа (класс) в массив объектов другого типа (структура) если они использую общий интерфейс ? Вот как у меня получается:

public interface ISomeInterface {}
public class SomeObject1 : ISomeInterface {}
public struct SomeObject2 : ISomeInterface {}

public static Main(string args)
{
   ISomeInterface obj1 = new SomeObject1 (); // Хорошо все получилось
   ISomeInterface obj2 = new SomeObject2 (); // Хорошо все получилось
   obj1 = obj2; // все еще хорошо
   obj2 = obj1; // или так - все еще хорошо
   
   ISomeInterface[] objects1 = new ISomeInterface[10];
   SomeObject2[]    objects2 = new SomeObject2[10];
   objects1 = objects2 // вот тут проблемы
}

Я пробовал переопределить явный/неявный (explicit/implicit) оператор, но он походит только для единичных случаев (один к одному).. Но массив к массиву не получается явно/неявно (explicit/implicit) привести. Помогите пожалуйста, это в моем коде столько бы грязи убрало...


Ответы (0 шт):