我重新实现了Enumerable.Zip (我的是Merge)。它与原始序列相同,除了如果一个枚举数的MoveNext在另一个枚举器的序列之前返回false (指示序列的长度不同),它将抛出异常。
我的问题是:在这里抛出来自BCL的最合适的异常是什么?(我希望它能很好地模仿Enumerable (LINQ)的其他函数。)
发布于 2012-07-04 01:43:38
我认为这是因为你的第二个数组将是一个参数。所以
System.ArgumentOutOfRangeExceptionArgumentException的子类,当参数(通常是数值)太大或太小时抛出。例如,将负数传递给只接受正值的函数时会抛出此错误。
或者可能是
System.InvalidOperationException当对象的状态不适合方法成功执行时抛出,而不管任何特定的参数值。示例包括读取未打开的文件或从枚举器获取下一个元素,其中底层列表在迭代过程中已被修改。
https://stackoverflow.com/questions/11316241
复制相似问题