-4

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

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

(messages != null && messages.Rows[0] != null)

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

4

1 に答える 1

2

Rowsも空かどうかを確認する必要があるようです。のタイプは実際にはわかりませんが、次のRowsことが必要になる場合があります。

if (messages != null && messages.Rows.Count > 0 && messages.Rows[0] != null)

または、LINQ を使用して、存在する場合は最初の行を取得し、それが null かどうかを確認できます。

if (messages != null && messages.Rows.FirstOrDefault() != null)

(それはいくつかのRows実装を想定しています。)IEnumerable<T>T

null にRows[0]ならない可能性もあり、カウントが 0 より大きいかどうかを確認するだけで済みます。

if (messages != null && messages.Rows.Count > 0)

または:

if (messages != null && messages.Rows.Any())
于 2014-05-10T13:36:22.993 に答える