我有一个试图对数据进行排序和组织的循环。
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,但是这似乎不起作用。我可以使用异常或其他方法检查是否超出范围吗?
答案 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();
(但是您实际上应该将这两种信息都存储在同一类中,或者至少不要通过索引链接)