当序列长度不同时抛出哪个异常

Jon*_*art 5 c# exception

我重新实施Enumerable.Zip(我叫Merge).它与原始版本相同,除非一个枚举器MoveNext在另一个之前返回false(表示序列的长度不同),它会抛出异常.

我的问题是:从BCL扔到这里最合适的例外是什么?(我希望它能够非常模仿其余的Enumerable(LINQ)函数.)

Nik*_*wal 3

我认为因为你的第二个数组将是一个参数。所以

\n\n
System.ArgumentOutOfRangeException\n
Run Code Online (Sandbox Code Playgroud)\n\n

ArgumentException 的子类,当参数(通常是数字)太大或太小时,\xe2\x80\x99s 抛出。例如,当将负数传递给仅接受正值的函数时,会抛出此错误。

\n\n

或者可能

\n\n
System.InvalidOperationException\n
Run Code Online (Sandbox Code Playgroud)\n\n

当对象的状态不适合方法成功执行时抛出,无论任何特定参数值如何。示例包括读取未打开的文件或从枚举器获取下一个元素,其中基础列表已在迭代过程中被修改。

\n