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 に答える