c# - 如何检查列表中的值是否存在(在超出范围之前)

标签 c# list next

我有这个列表:

IList<Modulo> moduli = (from Modulo module in Moduli
                       select module).ToList();

然后我用 for 循环它(注意 i=i+2):

for(int i=0; i<moduli.Count; i=i+2)
{
}

现在,我必须检查 moduli[i+1] 是否存在(因此,下一个元素),否则我将得到一个 System.ArgumentOutOfRangeException:索引超出范围。必须为非负数且小于集合的大小。

如何检查?试过:

if(moduli[i+1] != null) 
{
}

但它不起作用!

最佳答案

检查它的方式与检查循环条件的方式相同:

if(i + 1 < moduli.Count) // it exists

注意 <而不是 <= ,这是您原始代码中的一个错误。

关于c# - 如何检查列表中的值是否存在(在超出范围之前),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8914051/

相关文章:

python - 删除序列中重复的项目集

python - "OSError: telling position disabled by next() call"如何解决

c# - 如何创建自定义值注入(inject)以将我的实体映射到我的 View 模型?包括尝试

c# - 使用 ASP.NET C# 解析 JSON 中的数组

java - 如何洗牌对

list - 在 lisp 函数中使用带有 cons 的嵌套汽车

javascript node.js next()

python - 在 Python 中读取 .csv 而不遍历整个文件?

c# - xamarin 表单更改选定的选项卡颜色文本

c# - 正则表达式贪心问题(C#)