Как я могу Не выйти и строки ПереEscape в .NET?

Мне нужен TextBox на управлении WPF, которое может взять в тексте как Commit\r\n\r (который является строкой .NET "Commit\\r\\n\\r") и преобразуйте его назад в "Commit\r\n\r" как строка .NET. Я надеялся на строку. НеEscape () и строка. Escape () пара метода, но это, кажется, не существует. Я оказываюсь перед необходимостью писать свое собственное? или есть ли более простой способ сделать это?

22
задан Patrick McDonald 11 July 2014 в 14:18
поделиться

1 ответ

Код Ханса, улучшенная версия.

  1. Использовал StringBuilder - реальный усилитель производительности для длинных строк
  2. Сделал его методом расширения

     публичный статический класс StringUnescape 
     {
    публичная статическая строка Unescape (this string txt) 
     {
    if (string.IsNullOrEmpty (txt)) {return txt; } 
    StringBuilder retval = new StringBuilder (txt.Length); 
    for (int ix = 0; ix  = txt.Length) break; 
    switch (txt [jx + 1]) 
     {
    case ' п ': retval.Append (' \ n '); перерыв; // Перевод строки 
    case 'r': retval.Append ('\ r'); перерыв; // возврат каретки 
    case 't': retval.Append ('\ t'); перерыв; // Tab 
    case '\\': retval.Append ('\\'); перерыв; // Не экранировать 
    default: // Неизвестно, копировать как есть 
    retval.Append ('\\'). Append (txt [jx + 1]); break; 
    } 
    ix = jx + 2; 
    } 
    return retval.ToString (); 
    } 
    } { {1}} 
9
ответ дан 29 November 2019 в 04:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: