Delphi には、配列の最下位および最上位のインデックス次元を返す Low() および High() 関数があります。これは、 for ループステートメント の終了条件に<を意味するときに<=を使用するなど、陰湿な +1/-1 配列境界エラーの犠牲になる可能性のある配列を反復するためのエラーが発生しやすいfor ループを排除するのに役立ちます。
以下は、Low/High 関数の例です (Delphi で)。
for i := Low(ary) to High(ary) do
今のところ、C# で単純なfor ループステートメントを使用しています。
for (int i = 0; i < ary.Length; i++)
Array メソッドGetDimension(N)があることは知っていますが、間違った次元インデックスを誤って使用してエラーを引き起こす可能性があるため、それには独自の責任があります。列挙子で何かできると思いますが、for loopを使用する場合と比較して、大きな配列をスキャンするとパフォーマンスが大幅に低下するのではないかと心配しています。C# で High/Low に相当するものはありますか?