Voi*_*ing -1 c# string replace razor
当使用Replace函数时,我注意到在尝试替换值"\ r"和/或"\n"时我没有想到的东西.
我在外部.cs文件中有以下方法(正在进行中):
public static string UrlEncode(string stringItem)
{
stringItem = stringItem.Replace("%", "%25").
Replace("\"", "%22").Replace("#", "%23").
Replace("\\", "%5C").Replace("&", "%26").
Replace("'", "%27").Replace("+", "%2B").
Replace("\r", "").Replace("\n", " ");
return stringItem;
}
Run Code Online (Sandbox Code Playgroud)
这产生了期望的结果(即,用单个空间替换任何新线).
所以,如果我传入一个带有单个"enter-key-press"的字符串,它会存储一个空格.
我不明白(因此是问题):为什么,如果我只使用"替换('\ r','')"或"替换('\n','')"它是否仍然存储新队.我能理解其中一个不能正常工作,但为什么我需要同时包括两者?如果'\ r'或'\n'替换方法都不能单独使用,为什么两者都有效?
我问这个问题,因为使用代码而不理解它(至少对我来说)是一个非常糟糕的习惯.此外,我对我打算使用的代码了解得越多,我就能越多地利用它的有用性,从未来的情况到情况.
-------------------------另一个特殊情况----------------------- -----
如果我只使用Replace("\ r",""),它提供空间(就像替换工作一样)但是然后没有删除新行.
或者,如果我只使用Replace("\n",""),它会保留新行,然后提供空格.
-------------------------一个最后的注意事项---------------------- ----------
如果重要,输出将进入cshtml页面上的textarea.