私は再実装しましたEnumerable.Zip
(私のものはと呼ばれMerge
ます)。これは元の列挙子と同じですが、一方の列挙子がもう一方の列挙子のMoveNext
前にfalseを返す場合(シーケンスが同じ長さではないことを示す)、例外がスローされます。
私の質問は次のとおりです。ここでスローするBCLからの最も適切な例外は何でしょうか。Enumerable
(これで、残りの(LINQ)関数を厳密に模倣したいと思います。)
私は再実装しましたEnumerable.Zip
(私のものはと呼ばれMerge
ます)。これは元の列挙子と同じですが、一方の列挙子がもう一方の列挙子のMoveNext
前にfalseを返す場合(シーケンスが同じ長さではないことを示す)、例外がスローされます。
私の質問は次のとおりです。ここでスローするBCLからの最も適切な例外は何でしょうか。Enumerable
(これで、残りの(LINQ)関数を厳密に模倣したいと思います。)
2番目の配列が引数になると思います。それで
System.ArgumentOutOfRangeException
(通常は数値の)引数が大きすぎるか小さすぎる場合にスローされるArgumentExceptionのサブクラス。たとえば、これは、正の値のみを受け入れる関数に負の数を渡すときにスローされます。
または多分
System.InvalidOperationException
特定の引数値に関係なく、オブジェクトの状態がメソッドの正常な実行に適していない場合にスローされます。例としては、開いていないファイルの読み取りや、反復の途中で基になるリストが変更された列挙子から次の要素を取得することが含まれます。