如何检查if语句中是否超出界限?

时间:2018-07-06 16:11:27

标签: c#

我有一个试图对数据进行排序和组织的循环。

for (int a = 0; a < Combos.Count; a++)
{
    //Largest to smallest

    if (Combos.Count - a >= 1)
    {
        if (scores[a + 1] != null)
        {
            Combos.Add(Combos[a]);
            Combos.RemoveAt(a);
            scores.Add(scores[a]);
            scores.RemoveAt(a);
        }
    }
}

我想在嵌套的if语句有效时执行它,在Java中我通常使用== null,但是这似乎不起作用。我可以使用异常或其他方法检查是否超出范围吗?

1 个答案:

答案 0 :(得分:4)

代替这个

if (scores[a + 1] != null)

您检查Count(列表)或Length(数组):

if (a + 1 <= scores.Count)

目前尚不清楚您要在这里做什么,但是我想还有很多更简单的方法

//Largest to smallest

例如LINQ:

var orderedCombos = Combos.Zip(scores, (c, s) => new{ Combo = c, Score = s})
    .OrderByDescending(x => x.Score)
    .Select(x => x.Combo)
    .ToList();

(但是您实际上应该将这两种信息都存储在同一类中,或者至少不要通过索引链接)