我实现了一个类,该类将多个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?”没有解决问题。我已经解决了这一部分。我要问的是如何实现“ +”运算符(也许作为扩展方法),这似乎是不可能的。