foreach - 为什么我尝试在 List<string> 中修剪字符串似乎不起作用?

标签 foreach anonymous-methods generic-list

我在 LINQPad 中尝试了以下代码并得到以下结果:

List<string> listFromSplit = new List<string>("a, b".Split(",".ToCharArray())).Dump();
listFromSplit.ForEach(delegate(string s) 
{ 
  s.Trim(); 
});
listFromSplit.Dump();

"a" and " b"



所以字母 b 没有像我期望的那样去掉空格......?

谁有想法

[注意:.Dump() 方法是 LINQPad 中的一个扩展方法,它以一种很好的智能格式化方式打印出任何对象的内容]

最佳答案

您只是在创建一个修剪过的字符串,而不是为其分配任何内容。

var s = "  asd   ";
s.Trim();

不会更新s,而..
var s = "   asd   ";
s = s.Trim();

将要..
var listFromSplit = "a, b".Split(',').Select(s=>s.Trim());

我想,我会怎么做。

关于foreach - 为什么我尝试在 List<string> 中修剪字符串似乎不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/205299/

相关文章:

c# - 这两个片段严格等效吗?

javascript - forEach 循环与异步代码?

c# - C# 中的 Foreach struct 奇怪的编译错误

sql-server - 具有视觉反馈的 SSIS Foreach 循环

delphi - 在Delphi 2009中使用泛型和匿名方法有什么问题?

java - 如何实现比较器来比较名称?

c# - 匿名方法与lambda表达式

c# - 使用 linq 删除列表中的重复项

vb.net - 如何用List(Of t)填充DataTable或将List(Of t)转换为DataTable?

sorting - 通用排序功能的最通用可能/有意义的签名