IndexOutOfRangeException
刚刚在我正在构建的一个小项目中触发,但为什么呢?
这是布尔条件:
(messages != null && messages.Rows[0] != null)
我试图做的是检查这两个对象是否已初始化,但正如您已经想到的那样,这一切都是突然发生的。
IndexOutOfRangeException
刚刚在我正在构建的一个小项目中触发,但为什么呢?
这是布尔条件:
(messages != null && messages.Rows[0] != null)
我试图做的是检查这两个对象是否已初始化,但正如您已经想到的那样,这一切都是突然发生的。
听起来您也需要检查是否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())