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

C# 如何检查列表中的值是否存在(超出范围之前),c#,list,next,C#,List,Next,我有以下清单: IList<Modulo> moduli = (from Modulo module in Moduli select module).ToList(); 但它不起作用 那么: if (i + 1 < moduli.Count) { var modulo = moduli[i+1]; // this is safe } 检查后,ArgumentOutOfRangeException将立即抛出。检查方法与检查循

我有以下清单:

IList<Modulo> moduli = (from Modulo module in Moduli
                       select module).ToList();
但它不起作用

那么:

if (i + 1 < moduli.Count)
{
  var modulo = moduli[i+1]; // this is safe
}

检查后,ArgumentOutOfRangeException将立即抛出。

检查方法与检查循环条件相同:

if(i + 1 < moduli.Count) // it exists
if(i+1
注意
如何

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

for(inti=0;iLinq可以为您做这项工作:)

IList moduli=moduli。其中((项目,索引)=>((索引%2)==0))。
托利斯特();
非常简单:

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

for(int i=0;iTo首先,将循环条件更改为
i,然后在循环外部添加一个额外的if(moduli[moduli.Length-1]!=null){}为什么在循环中添加额外的if检查,这会降低性能?
if(i + 1 < moduli.Count) // it exists
for(int i=0; i <= (moduli.Count - (moduli.Count % 2)); i=i+2)
{
} 
IList<Modulo> moduli = Moduli.Where((item, index) => ((index % 2) == 0)).
                              ToList();
for(int i=0; i<moduli.Count - 2; i=i+2) { }