Visual Basic中比较字符串与List(Of String)元素的索引越界问题求解
更简便的处理方式
针对空List(Of String)访问索引0触发越界错误的问题,除了你列出的两种方法,还有以下更简洁的处理方式:
1. 使用FirstOrDefault()方法
利用LINQ的FirstOrDefault()方法,它会在列表为空时返回字符串类型的默认值(Nothing),无需单独判断列表长度:
Dim TempList As New List(Of String)() If TempList.FirstOrDefault() <> yourString Then ' 执行你的操作 End If
如果需要空列表时用空字符串而非Nothing做比较,可以指定默认值:
If TempList.FirstOrDefault("") <> yourString Then ' 执行你的操作 End If
2. 合并条件判断(简化嵌套)
把列表长度检查和元素比较合并到同一个If语句中,使用AndAlso短路求值(当第一个条件不满足时,不会执行后面的索引访问,避免报错):
Dim TempList As New List(Of String)() If TempList.Count >= 1 AndAlso TempList(0) <> yourString Then ' 执行你的操作 End If
这两种方法都比嵌套判断或预填空元素更简洁,也不需要提前预估列表需要的元素数量。
内容的提问来源于stack exchange,提问作者pball
相关产品推荐
相关产品推荐

