Hallo,
das Problem liegt darin, dass Du festlegen musst, wo eine neue Zeile beginnen soll. Dazu kannst Du String.Split verwenden (es gibt eine Überladung, die ein String-Array als Trenner verwendet, z.B. "<br>" und "<br/>" und "<br />"); aber die Trenner fehlen im Ziel-Array. Mein Vorschlag lautet deshalb:
Füge zunächst in mehrfachem Aufruf von String.Replace an allen gewünschten Trennstellen einen eigenen Trenner, z.B. "[CR/LF]", ein. Dann führe String.Split mit diesem Trenner aus. Das Ergebnis ist ein String-Array ohne diesen Trenner, aber mit allen anderen Trennern.
Mit RegEx geht es höchstwahrscheinlich viel schneller und einfacher; aber dazu habe ich keine Ahnung.
Gruß Jürgen
PS. Zur weiteren Verarbeitung: Es kommt darauf an, was Du machen willst - nur lesen/anzeigen oder ändern. Arrays haben im Prinzip eine feste Größe. Besser ist ggf. ein Konvertieren nach List<string> und Arbeiten damit.