我不能像

一样重载GetEnumerator()
IEnumerator<T> IEnumerable<T>.GetEnumerator<T> ( T[] val1,T[] val2)

{

  .... some code

}
有帮助吗?

解决方案

没有。只需创建一个普通的方法,例如

IEnumerator<T> MyCustomEnumerator<T>(T[] val1, T[] val2) {
    // some code
}

其他提示

您可以为 GetEnumerator 方法提出重载,但它不能成为 IEnumerable 实现的一部分。

GetEnumerator不接受参数。

扩展方法怎么样?

即:


public static class IEnumeratorExtensions
{
    public static IEnumerator<T> GetEnumerator<T>(this IEnumerable<T> ie,
        T[] val1, T[] val2)
    {
        //your code here
    }
}

...
string[] s1;
string[] s2;

var qry = from s in new string[]{"1", "2"}
          select s;

qry.GetEnumerator(s1, s2);
...

但你想在这个“过载”中做什么呢?如果要合并这两个T数组,IEnumerable已经有许多采用方法的方法。确保你没有重新发明轮子!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top