Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Really basic C# array/loop confusion

I'm doing a basic 2D array in C# and I've got a bit of confusion.

I'm a lot more used to working with 1-based arrays, so 0-based arrays kind of mess up my head if you know what I mean.

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));
    }
}

So it's telling me I'm out of bounds of the array?

If the array is from

0-15, 0-999

Shouldn't a loop from 0-15, 0-999 work?

like image 401
Ashley Davies Avatar asked Mar 02 '26 10:03

Ashley Davies


1 Answers

It's not. 999 is the length of the array. Thusly, it's from 0-998, and when you loop over it, you should be in the habit of using "less than" rather than "less than or equal" -- then it will tend to come out right.

like image 105
mqp Avatar answered Mar 04 '26 23:03

mqp