c# - 选择无法打印到控制台

标签 c# linq select

我希望将 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/

相关文章:

c# - 快速变化的业务线应用程序的 asp.net 3.5 构建管理的最佳实践是什么

c# - 使用 Owin 时的自定义错误页面

css - 如何为 Rails date_select year 选择设置 css 类?

c# - LINQ - 基于条件的多个 Where

php - 选择多个数组元素

mysql - 关于 SQL 行过滤器

c# - 如何访问我的 LINQ 模型中的特定行?

c# - 初始化 applicationhost.config 文件失败。找不到 IIS Express

c# - GroupBy 之后的条件选择

c# - 林克:{"Operation could destabilize the runtime."}