Конвертирование с помощью интерфейса в 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) привести. Помогите пожалуйста, это в моем коде столько бы грязи убрало...