从列表中删除所有空格C#

The*_*ley 2 c# arrays list

我正在读取文本文件中的所有行到名为"masterToken"的列表,我正在尝试删除列表中的所有空格(文本文件中的所有空格).masterToken = masterToken.Where(s => !string.IsNullOrWhiteSpace(s)).ToList();是我目前正在尝试使用的,它不起作用.

有什么问题masterToken = masterToken.Where(s => !string.IsNullOrWhiteSpace(s)).ToList();和/或有没有更好的方法来实现我想要的东西?

谢谢

public static void Lex()
{        
  List<string> masterToken = File.ReadAllLines("C:\\Users\\Theo\\Documents\\Visual Studio 2017\\Projects\\Interpreter\\test.txt").ToList();

  foreach (var item in masterToken)
  {
    Console.Write(item.ToString());
  }

  masterToken = masterToken.Where(s => !string.IsNullOrWhiteSpace(s)).ToList();

  Console.WriteLine("");

  foreach (var item in masterToken)
  {
    Console.Write(item.ToString());
  }

  Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

Ser*_*kiy 7

我建议你用空字符串Regex.Replace替换每个空格序列\s+.使用此方法生成新字符串并将结果保存到列表:

masterToken = masterToken.Select(t => Regex.Replace(t, @"\s+", "")).ToList();
Run Code Online (Sandbox Code Playgroud)

请注意,如果您只想删除前导和尾随空格,那么最好使用Trim():

masterToken = masterToken.Select(t => t.Trim()).ToList();
Run Code Online (Sandbox Code Playgroud)

请记住,既Trim不会Replace也不会修改原始字符串 - 所有这些方法都会返回新的字符串实例.


小智 5

替换这一行:

masterToken = masterToken.Where(s => !string.IsNullOrWhiteSpace(s)).ToList();
Run Code Online (Sandbox Code Playgroud)

这样:

masterToken.ForEach(s => s = s.Replace(" ",""));
Run Code Online (Sandbox Code Playgroud)