I need to often convert a \"string block\" (a string containing return characters, e.g. from a file or a TextBox) into List
Have you tried splitting on newline/carriage return and using the IEnumerable ToList extension?
testBlock.Split( new char[] { '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries )
.ToList()
If you want to keep empty lines but may have both linefeed and carriage return.
textBlock.Replace( "\r\n", "\n" ).Replace( "\r", "\n" ).Split( '\n' ).ToList();