public static void Main()
string message = "this\r\nis\ran\nmessage";
Console.WriteLine(message);
string line = string.Empty;
while ( QueueMessage(ref line, out brcount, message) )
message = message.Remove(0, line.Length + brcount);
static bool QueueMessage(ref string line, out int brcount, string message)
const char LF = (char)0x0A;
const char CR = (char)0x0D;
int idx = message.IndexOf(CR);
if(idx + 2 < message.Length && message[idx + 1] == LF)
line = message.Substring(0, idx);
line = message.Substring(0, idx);
else if ( (idx = message.IndexOf(LF) ) != -1 )
line = message.Substring(0, idx);