如何在没有回车的情况下创建C#字符串

如何在没有回车的情况下创建C#字符串,c#,string,verbatim-string,C#,String,Verbatim String,我有一个奇怪的情况。当我像这样逐字逐句地处理字符串时: string str = @"Hello World" 字符串是用“\r\n”创建的,因此它是“Hello\r\nWorld”。我希望它仅使用新行创建,不使用回车符,因此它仅为“\n” 现在,我意识到我可以做到: str = str.Replace("\r", "") 但是字符串是一个常量变量,特别是因为我不想为了性能而进行大量的实例化和操作(无论多么小),等等 有人知道我是如何做到这一点的吗?我可以编写一个多行文本,它以常量字符串的

我有一个奇怪的情况。当我像这样逐字逐句地处理字符串时:

string str = @"Hello 
World"
字符串是用“\r\n”创建的,因此它是“Hello\r\nWorld”。我希望它仅使用新行创建,不使用回车符,因此它仅为“\n”

现在,我意识到我可以做到:

str = str.Replace("\r", "")
但是字符串是一个常量变量,特别是因为我不想为了性能而进行大量的实例化和操作(无论多么小),等等


有人知道我是如何做到这一点的吗?我可以编写一个多行文本,它以常量字符串的形式存储,没有“\r”,在代码中仍然显示为格式化且易于阅读?

这是你的编辑器对你做的,而不是C

如果在十六进制编辑器中查看代码,您将看到行“string str=@“Hello”以\r\n结尾,而不是仅以\r\n结尾

在Windows上,默认情况下,返回值是两个字符\r\n,而不是像Mac上那样只有一个字符\r\n

大多数编辑器都可以选择更改此选项。 但是,当您不查看时,最终会有东西将文件切换回\r\n对您使用

语言并没有提供一个干净的方法来解决这个问题。
只需使用非逐字字符串或进行替换。

这取决于您使用的编辑器。如果文件包含回车符,则您将得到回车符。您需要注意源代码管理设置。如果您使用换行符转换(autocrlf)在Git中启用,您的LF-only行可以更改为CR/LF。是否可以将字符串写为
“Hello\nWorld”
?即使这意味着要做更多的工作?