Ja, aber dem ist nicht so. Welchen Wert hat i beim ersten Durchlauf? 0. Wie lang wird das Array bei SetLenght(..., i);? 0. Wo fügts du das ertse Element ein? Bei 0. -> Crash!
Da du weißt wie viele Elemente du brauchst, setzte die Länge vor der Schleife, dann kannst du mit i auf die Elemente zugreifen. Das ist erstens performanter und zweites tuts du dir deinem Speicher was Gutes.