-4

IndexOutOfRangeException刚刚在我正在构建的一个小项目中触发,但为什么呢?

这是布尔条件:

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

我试图做的是检查这两个对象是否已初始化,但正如您已经想到的那样,这一切都是突然发生的。

4

1 回答 1

2

听起来您也需要检查是否Rows为空。我们实际上并不知道 的类型Rows,但您可能想要:

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

或者您可以使用 LINQ 获取第一行(如果存在),并检查它是否为空:

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

(这是假设某些人的Rows工具。)IEnumerable<T>T

也可能Rows[0]永远不会为空,您实际上需要检查计数是否大于0:

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

或者:

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