roh*_*agg 5 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();
Run Code Online (Sandbox Code Playgroud)
"a"和"b"
所以字母b没有像我期待的那样去掉白色空间......?
有人有主意吗
[注意:.Dump()方法是LINQPad中的扩展方法,它以一种漂亮的智能格式打印出任何对象的内容]
Sci*_*ist 17
你只是创建一个修剪过的字符串,而不是为它分配任何东西.
var s = " asd ";
s.Trim();
Run Code Online (Sandbox Code Playgroud)
不会更新s,而..
var s = " asd ";
s = s.Trim();
Run Code Online (Sandbox Code Playgroud)
将..
var listFromSplit = "a, b".Split(',').Select(s=>s.Trim());
Run Code Online (Sandbox Code Playgroud)
我想,我会怎么做呢.
akm*_*mad 10
String.Trim()方法返回表示更新后的字符串的字符串.它不会更新字符串对象本身,而是创建一个新对象.
你可以这样做:
s = s.Trim();
Run Code Online (Sandbox Code Playgroud)
但是,您无法在枚举时更新集合,因此您希望在枚举现有集合时填充新列表,或者使用String.Split返回的字符串数组手动填充列表.
填写新列表:
List<string> temp = new List<string>("a, b".Split(",".ToCharArray()));
List<string> listFromSplit = new List<string>();
temp.ForEach(delegate(string s)
{
listFromSplit.Add(s.Trim());
});
listFromSplit.Dump();
Run Code Online (Sandbox Code Playgroud)
手动填充:
string[] temp = "a, b".Split(",".ToCharArray());
List<string> listFromSplit = new List<string>();
foreach (string s in temp)
{
listFromSplit.Add(s.Trim());
};
listFromSplit.Dump();
Run Code Online (Sandbox Code Playgroud)