真正基本的C#数组/循环混乱

时间:2011-10-02 20:32:10

标签: c# .net arrays loops

我正在用C#做一个基本的2D数组,我有点困惑。

我更习惯于使用基于1的数组,所以如果你知道我的意思,基于0的数组会让我头疼。

blocks = new Block[15, 999];

for (int x = 0; x <= 15; x++)
{
    for (int y = 0; y <= 999; y++)
    {
        blocks[x, y] = new Dirt(terrainTexture, new Vector2(x * 16, y * 16));
    }
}

所以它告诉我,我已经超出阵列范围了?

如果数组来自

0-15,0-999

不应该是0-15,0-999的循环吗?

2 个答案:

答案 0 :(得分:10)

不是。 999是数组的长度。因此,它是从0-998,当你循环它时,你应该养成使用“小于”而不是“小于或等于”的习惯 - 然后它会倾向于正确。

答案 1 :(得分:7)

你有15和999个元素,但由于数组是0索引的,这意味着它们分别从0-14和0-998运行。

相关问题