我有一个列表,如:
List<String> test = new List<String> {"Luke", "Leia"};
Run Code Online (Sandbox Code Playgroud)
我想用这样的东西:
test.Select(s => String.Format("Hello {0}", s));
Run Code Online (Sandbox Code Playgroud)
但它不会调整列表中的名称.有没有办法使用lambda表达式来改变这些?或者是因为字符串是不可变的,这不起作用?
dtb*_*dtb 12
选择不会修改原始集合; 它会创建一个新的IEnumerable <T>,您可以使用foreach枚举或转换为列表:
List<String> test2 = test.Select(s => String.Format("Hello {0}", s)).ToList();
Run Code Online (Sandbox Code Playgroud)
test仍包含"Luke"和"Leia",test2包含"Hello Luke"和"Hello Leia".
如果要使用lambda表达式修改原始列表,可以将lambda表达式单独应用于每个列表项,并将结果存储回集合中:
Func<string, string> f = s => String.Format("Hello {0}", s);
for (int i = 0; i < test.Count; i++)
{
test[i] = f(test[i]);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9138 次 |
| 最近记录: |