Строка, которую вы читаете из файла, не содержит буквально "\r\n"
. Это escape-последовательности . '\r'
и '\n'
представляют символы возврата каретки и новой строки соответственно, которые вместе образуют разрыв строки.
Однако, если вы смотрите отладчик VS на строку, вы можете увидеть escape-последовательности вместо реальных разрывов строк. От MSDN :
Примечание
Во время компиляции дословные строки преобразуются в обычные строки с одинаковыми escape-последовательностями. Поэтому, если вы посмотрите дословную строку в окне наблюдения отладчика, вы увидите экранирующие символы, которые были добавлены компилятором, а не дословную версию из вашего исходного кода. Например, дословная строка @"C:\files.txt"
появится в окне просмотра как "C:\\files.txt"
.
Пример:
var mystring = "Hello\r\nWorld";
Console.Write(mystring);
Выход:
Hello
World
Если вы действительно хотите избавиться от разрывов строк в строке, вы можете, например, использовать регулярное выражение:
var result = Regex.Replace(mystring, @"\s+", " ");
// result == "Hello World";