Może być sytuacja - już tu opisana, że nie wejdzie Ci do pętli while w ogóle i wtedy będziesz miał próbę wypisania obiektu który nie jest zainicjalizowany.
Co do tablicy - to byłoby rozsądne, albo jeszcze lepiej - nie używaj tablicy tylko jakiejś kolekcji, np. listy i dodawaj stringi do niej tylko zainicjalizowane.
inne obejście problemu - brzydkie ale skuteczne też - sprawdzaj przed wypisaniem czy innym użyciem czy nie jest nullem (bądź czy nie jest pusty jeśli to tez przeszkadza). jest do tego "fajna" metoda o ile pamiętam to:
if (String.IsNullOrEmpty(myString))
albo lepiej, ze sprawdzeniem czy nie ma samych białych znaków:
if (String.IsNullOrWhitespace(myString))
Generalnie pamiętaj ze string to typ referencyjny a nie typ prosty. (Jak nie wiesz czemu masz uważać i co to znaczy - doczytaj sobie :) )