5

我希望Select用作功能性foreach。当我执行以下操作时,我希望它能够打印

foo
bar
baz

但是它不打印任何东西。怎么来的?代码是

List<String> strings = new List<String>(){"foo", "bar", "baz"};
strings.Select(st => { Console.WriteLine(st); return 1; });
4

1 回答 1

11

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

于 2013-02-20T14:10:35.400 回答