如何将一个字符串拆分并修剪成一行中的所有部分?

Edw*_*uay 111 .net c# split trim

我想分开这一行:

string line = "First Name ; string ; firstName";
Run Code Online (Sandbox Code Playgroud)

进入他们修剪版本的数组:

"First Name"
"string"
"firstName"
Run Code Online (Sandbox Code Playgroud)

我怎么能在一条线上完成这一切?以下给出了一个错误"无法转换类型void":

List<string> parts = line.Split(';').ToList().ForEach(p => p.Trim()); 
Run Code Online (Sandbox Code Playgroud)

Céd*_*Rup 263

尝试

List<string> parts = line.Split(';').Select(p => p.Trim()).ToList();
Run Code Online (Sandbox Code Playgroud)

仅供参考,Foreach方法接受一个Action(取T并返回void)作为参数,并且你的lambda返回一个字符串作为string.Trim返回一个字符串

Foreach扩展方法用于修改集合中对象的状态.由于字符串是不可变的,因此无效

希望它有所帮助; o)

塞德里克

  • 注意:`ForEach`不是扩展方法. (3认同)

Guf*_*ffa 22

ForEach方法不返回任何内容,因此您无法将其分配给变量.

请改用Select扩展方法:

List<string> parts = line.Split(';').Select(p => p.Trim()).ToList();
Run Code Online (Sandbox Code Playgroud)


Gui*_*ira 21

在.net 5之后,解决方案很简单:

string[] parts = line.Split(';', StringSplitOptions.TrimEntries);
Run Code Online (Sandbox Code Playgroud)

  • 是的!!!!!!!!!!!!!!!!!!最后!!!!!(提示 CeCe Peniston:https://www.youtube.com/watch?v=xk8mm1Qmt-Y) (2认同)

Mat*_*kon 5

因为p.Trim()返回一个新字符串.

你需要使用:

List<string> parts = line.Split(';').Select(p => p.Trim()).ToList();
Run Code Online (Sandbox Code Playgroud)