Я реализовал класс, который объединяет несколько объектов IEnumerable в один объект IEnumerable, поэтому я могу написать:
foreach (SomeType item in new CombinedEnumerable<SomeType>(it1, it2))
{
...
}
Где it1 и it2 реализуют интерфейс IEnumerable .Из эстетических соображений и для ясности кода я хотел бы иметь возможность написать:
foreach (SomeType item in it1 + it2)
{
...
}
Все, что мне нужно сделать, это реализовать этот оператор:
public static IEnumerable<T> operator +(IEnumerable<T> t1, IEnumerable<T> t2)
{
return new CombinedEnumerable<T>(t1, t2);
}
Но компилятор победил 'Позвольте мне сделать это, потому что определение должно быть внутри класса IEnumerable .Есть ли обходной путь?
Редактировать: возможный дубликат "Как объединить два IEnumerable в новый IEnumerable?"не решил проблему.Эту часть я уже решил.Я просил, как реализовать оператор «+» (возможно, в качестве метода расширения), что, по-видимому, невозможно.