在C#中如何检查列表中的第二项是否为空以避免
未处理的类型' System.ArgumentOutOfRangeException' 指数超出范围。必须是非负数且小于 集合。
这种方式不起作用:
if (MyList[id + 1] != null || MyList[id + 1] != "")
{
Var = MyList[id + 1];
}
答案 0 :(得分:1)
它不是空指针异常。这是一个索引超出范围的异常,是由于尝试访问MyList的索引大于MyList.length - 1.(减1,因为数组从索引0开始。)
答案 1 :(得分:0)
除了你正在做的事情之外,使用Length()
属性(假设id
是一个整数):
if (MyList != null && MyList.Length() >= id && MyList[id + 1] != null || MyList[id + 1] != "")
{
Var = MyList[id + 1];
}
根据您的列表类型,您可能必须使用Count()
:
if (MyList != null && MyList.Count() >= id && MyList[id + 1] != null || MyList[id + 1] != "")
{
Var = MyList[id + 1];
}