問題タブ [indexoutofrangeexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
223 参照

.net - ArgumentOutOfRangeException および IndexOutOfRangeException でのパフォーマンス

パブリック ドキュメント API の一部となる新しいクラスをライブラリに追加しました。基礎となるデータ構造はネイティブ配列ですList<T>が、最初にネイティブ配列を生成するときに使用されます。

MSDN は、 (ネイティブ配列にアクセスするときにスローされる可能性がある)ではなく、List<T>スローすることを示しています。ArgumentOutOfRangeExceptionIndexOutOfRangeException

ArgumentOutOfRangeExceptionしたがって、次のように、ドキュメント化された API 内で一貫性を保つために常にスローするように関数を更新する予定です。

私の質問はこれです:

上記のソースでは 2 つの範囲チェック (私の 1 つ + ネイティブ配列の 1 つ) が発生しますか、それとも .NET コンパイラはIndexOutOfRangeExceptionチェックを削除するほどスマートですか?

0 投票する
4 に答える
77 参照

c# - 次の c# の配列宣言の違いは何ですか?

WinFormアプリでメニューを作成していますが、次のようなことをしていました:

以降 :

IndeOutOfRangeException がスローされます。

ここに画像の説明を入力

この迷惑な例外の後、配列宣言を次のように変更しました。

すべてが魔法のように機能します。

そして今、質問:上記の配列宣言が機能し、他の配列宣言が機能しない理由を知っている人はいますか? どうもありがとう

0 投票する
2 に答える
80 参照

c# - 多次元 char 配列での IndexOutOfRangeException

コードは配列をループし、各インデックスを '*' に初期化します。しかし、私は進んでいるので、IndexOutOfRangeExceptionいくつCave[i,j]かのガイダンスが必要です。

  • 明確GridHeightにするためにGridWidth、次のように宣言されています

    public const int GridHeight = 5;

    public const int GridWidth = 7;

0 投票する
1 に答える
115 参照

c# - if条件によりIndexOutOfRangeExceptionが発生しました

IndexOutOfRangeException私が構築している小さなプロジェクトでトリガーされたばかりですが、なぜですか?

ブール条件は次のとおりです。

私がやろうとしていたのは、これら 2 つのオブジェクトが初期化されているかどうかを確認することですが、既にお気づきのように、これは突然発生しました。

0 投票する
1 に答える
384 参照

c# - IndexOutOfRangeException を回避するために特定のインデックスに行があることを確認する方法

次の例外を回避するために、特定のインデックスに行があることを確認する方法を知りたい:

System.IndexOutOfRangeException

例えば ​​:

dtNewちょうどa one rowi = 3!! _

0 投票する
0 に答える
1610 参照

c# - 選択したデータ グリッド ビューから別のデータ グリッド ビューにデータを渡す

こんにちは、選択した datagridview 行を別の datagridview に追加しようとしています。

私はmanオブジェクトクラスを使用しています。これが私のクラスです。

ここに 2 つのリストがあります。

行クリック イベントのコード全体を次に示します。

時々クリックすると、このエラーメッセージが表示されます。

DataGridView で以下の例外が発生しました。

System.indexOutOfRangeException:Index 0 に値がありません System.Windows.Forms.CurrencyManager.get_Item(Int32index)at System.Windows.Forms.DataGridView.DataGridViewDataConnection.GetError(Int32rowIndex) この既定のダイアログを置き換えるには、データ エラー イベントを処理してください.

セルが1つずつ空になり、常にエラーメッセージが表示されます。誰かがそれを修正する方法を教えてもらえますか?

0 投票する
1 に答える
780 参照

c# - c# openFileDialog IndexOutofRange エラー

openFileDialog を表示するのに問題があります。

これが私の現在の状況です:

複数のフォームを持つ WinForms プログラムがありますが、それらはすべて同じスレッドで実行されます。現在、それぞれ saveFileDialog と openFileDialog を持つ 2 つのフォームがあります。

開始時に開く最初のフォームでは、saveFileDialog と openFileDialog の両方が正常に機能しますが、2 番目のフォームでは、openFileDialog は開くことさえ拒否します。

これが私が今得ているスタックトレースです:

System.Windows.Forms.OpenFileDialog.OpenFile() の System.Windows.Forms.dll で、タイプ 'System.IndexOutOfRangeException' の初回例外が発生しました。

問題が発生するコードは次のとおりです。

ユーザーが [OK] をクリックすると、これがトリガーされます。

  • 私は元々、ツールボックスから openFileDialog を直接使用し、そのプロパティを変更してから、問題が発生した後、今見られるように別の方法を試してみました。

  • ある時点で私に与えられた別のエラーは、openfiledialog が存在しないファイルを表示する前に開こうとしているかのように、ファイルが見つからないというものでした。

  • また、上記のコードが存在するフォームでのいくつかと同様に、他のフォームでかなりの量の p/Invokes を使用しています。ただし、それらはビットマップと画面を扱います。

  • 私が抱えている問題に関して、これがあまり多くの情報ではないことを願っています。足りない場合は、他に何を提供してほしいか教えてください。

  • この質問はこの質問 ( Stackoverflow/CLR Error in C# OpenFileDialog ) に似ているように見えるかもしれませんが、その質問にはまだ受け入れられた回答がありません。しかし、彼の問題とは異なり、2 つの saveFileDialogs と 1 つの openFileDialogs がありますが、まったく失敗しません。

0 投票する
1 に答える
1305 参照

python - Python、ループのネスト、関数、if ステートメント

これはやや文字化けしたコードの抜粋です。

コンテキストは、[100、92、87 など] のように見えるリスト、建物を反復しようとしているということです。建物の各フロアを繰り返し処理し、その人を (現在のフロアを減らすことによって) 次の使用可能な階段に移動します。

私の問題は、関数内のリストと if ステートメントのネストです。これは三重苦で、適切な構文を理解するのに苦労しています:

  • リストのリストの特定の部分を呼び出す - すなわち list[i][j]

  • ループ内で if ステートメントを使用する

  • ネストループ

  • 他のループでループ変数を使用する

これが私のコードです:


編集:

私は問題を理解しました。建物の入力はリストです。Staircasenetwork もリストです。リストは次のようになります

これは、人でいっぱいの 3 階建ての建物と 2 つの空の階段を表しています。

私が間違っていたのは、次の行に沿って何かを書こうとしていたことです。

(i) 建物 ([0, 1, 2] と予想) と (j) 階段ネットワーク ([0, 1] と予想) を取り、これら 2 つの座標を使用して私が書いたリストを繰り返します。

私が忘れていたのは、Python がそれらの値を (i) に直接代入してリストを反復処理することです。

したがって、リストがある場合:

そして私は書く:

それは印刷されます:

いいえ:

したがって、私の問題の修正は、ビルドの代わりに range(len(building) を使用することでした。

このステートメントは構築を受け取り、最初に len() を使用してリスト構築の長さに等しい整数に変換します。次に、range() を使用して、その整数を 0 から X までの数値のリストに変換します。

基本的に: [100, 90, 101] >> 3 >> [0, 1, 2]

印刷します:

だから私の最初の試みで、私が使用するとき:

最初に行うことは、建物リストの最初の値である 100 を調べることです。次に、その番号を使用して、建物リストの 100 番目の番号を見つけますが、そのリストは 3 つの値しかないため存在しません。

それはこれをしようとします:

次のようなステートメントを使用する方法があります。

次のようなタプルのリストを作成するには:

しかし、私は range(len(building)) メソッドを使用することを好みました。この方法は速度の優れた基準には達しないかもしれませんが、コードの仕組みについて何かを教えてくれ、小さな問題を解決してくれます。

固定コードは次のようになります。

(i) と (j) は、変数を直接反映するのではなく、(range(len()) を介して) の座標になります。

レゴ ストームトルーパーは、私のコードの他の問題に対しても素晴らしい回答を書いています。

0 投票する
3 に答える
4234 参照

python - Python を使用してテキスト ファイルから行を出力しようとすると、「リスト インデックスが範囲外です」

テキストファイルから偶数行を抽出して新しいファイルに出力しようとしていました。しかし、私のコードでは、pythonは「リストインデックスが範囲外です」と警告します。誰でも私を助けることができますか?ありがとう〜

コード:

出力: