C# 如何检查列表中的第二项是否为空以避免异常
如何检查列表中的第二项是否为空,以避免idC# 如何检查列表中的第二项是否为空以避免异常,c#,list,C#,List,如何检查列表中的第二项是否为空,以避免idid,列表也是如此version@GoGoLander,列表中的元素可能为null(或空)。OP仍然需要检查。@matt spinks确实如此,但这不是异常的原因 if (MyList != null && MyList.Length() >= id && MyList[id + 1] != null || MyList[id + 1] != "") { Var = MyList[id +
这不是空指针异常。这是一个索引越界异常,是由于尝试访问大于MyList.length-1的MyList索引引起的。(减1,因为数组从索引0开始。)除了您已经在做的事情之外,还使用
Length()
属性(假设id
是一个整数):
根据您拥有的列表类型,您可能必须使用Count()
:
看起来您还需要检查
id+1
。检查null不会避免ArgumentOutOfRangeException
。异常文本中没有任何内容表明某个内容为空,因为它被称为MyList
,我猜它是一个列表
,没有Length
属性。当然,在这种情况下,使用Count()
,这是答案的一部分。条件MyList[id+1]!=空| |我的列表[id+1]!=“”
不做任何处理异常的操作,以便安全地删除它们MyList.Length()>=id
包含一个输入错误,因为它将在上一次迭代时抛出IndexOutOfBound:它必须是MyList.Length()>id
,列表也是如此version@GoGoLander,列表中的元素可能为null(或空)。OP仍然需要检查。@matt spinks确实如此,但这不是异常的原因
if (MyList != null && MyList.Length() >= id && MyList[id + 1] != null || MyList[id + 1] != "")
{
Var = MyList[id + 1];
}
if (MyList != null && MyList.Count() >= id && MyList[id + 1] != null || MyList[id + 1] != "")
{
Var = MyList[id + 1];
}