选择无法打印到控制台

本文关键字:控制台 打印 选择 | 更新日期: 2023-09-27 18:00:20

我希望使用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:)