在 C# 中删除 CSV 中的尾随空格

use*_*148 0 c# csv trim streamwriter

我有一个 CSV 文件,某些列中有很多尾随空格,因此我尝试编写一个简单的 Windows 窗体应用程序,该应用程序循环遍历 CSV 中的所有行并删除尾随空格。我认为我还很远,但我有一种感觉,C# 将其视为一行:

"Lorem ipsum dolor sit amet","Default ",9999,1,"base "
Run Code Online (Sandbox Code Playgroud)

虽然它应该将其视为一行:

"Lorem ipsum dolor sit amet"
Run Code Online (Sandbox Code Playgroud)

这是我现在的代码:

String path = @"C:\Users\me\Documents\test.csv";

string[] allLines = File.ReadAllLines(path);
using (StreamWriter sw = new StreamWriter(path))
{
    foreach (string line in allLines)
    {
        if (!string.IsNullOrEmpty(line) && line.Length > 1)
        {                
            line.TrimEnd(' ');

            sw.WriteLine(line);
            //sw.WriteLine(line.TrimEnd(' '));
        }
    }
}
Console.WriteLine(allLines);
Console.WriteLine("Done");
Run Code Online (Sandbox Code Playgroud)

我如何确保我的 CSV 文件是这样的:

"Lorem ipsum dolor sit amet ","Default ",9999,1,"base "
"simple","Default ",9999,1," base"
"test ","Default ",9999,1,"base"
Run Code Online (Sandbox Code Playgroud)

运行如下 C# 代码后会出现(因此末尾和开头没有空格):

"Lorem ipsum dolor sit amet","Default ",9999,1,"base"
"simple","Default",9999,1,"base"
"test","Default",9999,1,"base"
Run Code Online (Sandbox Code Playgroud)

编辑:我也尝试这样做,line = line.TrimEnd(' ');但这给了我错误无法分配“行”,因为它是“foreach迭代变量”。

mjw*_*lls 5

改变:

line.TrimEnd(' ');
sw.WriteLine(line);
Run Code Online (Sandbox Code Playgroud)

到:

sw.WriteLine(line.TrimEnd(' '));
Run Code Online (Sandbox Code Playgroud)

TrimEnd不直接编辑字符串 - 它返回一个应用了编辑的新字符串。