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を使用してください:)