我希望将 Select
用作功能性 foreach。当我执行以下操作时,我希望它能打印出来
foo
bar
baz
但是它不打印任何东西。怎么来的?代码是
List<String> strings = new List<String>(){"foo", "bar", "baz"};
strings.Select(st => { Console.WriteLine(st); return 1; });
最佳答案
使用 ForEach:
List<String> strings = new List<String>() { "foo", "bar", "baz" };
strings.ForEach(st => { Console.WriteLine(st); });
通过使用 Select,您基本上是在使用以下主体定义匿名函数。
Console.WriteLine(st);
return 1;
因此,Console.WriteLine 只会在您遍历列表时触发,如下所示:
var x= strings.Select(st => { Console.WriteLine(st); return 1; });
foreach (var i in x){ }
或x.ToList()
这是错误的,使用 ForEach :)
关于c# - 选择无法打印到控制台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14981876/