C# 使用C删除文件中的悬挂CR#

C# 使用C删除文件中的悬挂CR#,c#,.net,C#,.net,我有一个场景,在我的文件中有一个悬空的CR(回车)。但每一行都由CRLF分隔 例如,我在文件say input.txt中有一行: Stackoverflow是一个可爱的网站,任何新手都可以使用CR CRLF 如果我在代码中使用ReadAllLines方法。我得到两个不同的字符串 string[] lines = File.ReadAllLines(input.txt) lines[0] = "Stackoverflow is a lovely site to use " lines[1] =

我有一个场景,在我的文件中有一个悬空的CR(回车)。但每一行都由CRLF分隔

例如,我在文件say input.txt中有一行:

Stackoverflow是一个可爱的网站,任何新手都可以使用CR CRLF

如果我在代码中使用ReadAllLines方法。我得到两个不同的字符串

string[] lines = File.ReadAllLines(input.txt)

lines[0] = "Stackoverflow is a lovely site to use "

lines[1] = "for any novice user "
现在,我必须只删除上面一行中的CR,并保留CRLF

这样我就可以得到

lines[0] = "Stackoverflow is a lovely site to use for any novice user "
如何在C#中执行此操作?

类似于,请尝试以下操作:

string noCR = line.Replace("\n", "")

您需要使用String.Replace

因此:

或者使用字符“\n”执行此操作


我认为应该可以

试着读整个文件,然后自己拆分行

string text = File.ReadAllText("my file");
string[] lines = test.Split('\r', '\n', StringSplitOptions.RemoveEmptyEntries);
这将为您提供一个字符串数组,每个元素有一行。任何行都不会包含或以
CRLF
CR
LF
结尾

现在你想把它们粘在一起。试试这个

string textWithoutLineEndings = string.Join(" ", lines);

我通常像这样规范化行尾:

str.Replace("\r", "").Replace("\n", "\r\n")

这是可能的。

如果希望得到帮助,您应该尝试一下!谢谢我们。。。它工作得很好。。。很抱歉回复得很晚……)这就是我最后做的。字符串fileTxt=File.ReadToEnd(“C:\input.txt”);字符串cleanedUpFile=fileTxt.Replace(“\r”,”).Replace(“\n”,“\r\n”);writealText(“C:\output.txt”,cleanedUpFile);上面评论的技术发布了一个易受攻击的威胁。在读取多个大文件时,我习惯于获取SystemOutOfMemory异常。我的同事Muniraju使用扩展方法帮助我解决了这个问题。为ReadLines编写一个扩展方法。感谢ans的帮助。您的解决方案将产生意想不到的结果。但我的文件将只以“\r”结束,而不以“\n”结束。这可能会在管道中进一步产生问题。你的建议对单行线有效。但不适用于多行文本。也许我得说得更具体些。对不起,谢谢你。这不适用于多行文件。但您的解决方案适用于单行文件。也许我应该说得更具体些。谢谢你编辑Gusdor。
str.Replace("\r", "").Replace("\n", "\r\n")