Сразу код:
https://dotnetfiddle.net/RG65I4
Нужно чтобы в строке escaped не было символа новой строки ('\n' который). Но сделать это не классическим способом посимвольного перебора со счетчиком а через string.Replace.
Приведенное решение в принципе рабочее, но слишком уродливо. Можно ли как-то красивее?