IndexOutOfRangeException由于if条件而发生

时间:2014-05-10 13:33:59

标签: c# asp.net .net datatable indexoutofrangeexception

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

这是布尔条件:

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

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

1 个答案:

答案 0 :(得分: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。)

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

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

或者:

if (messages != null && messages.Rows.Any())
相关问题