以前のリビジョンの文書です
var m = new Math(); m.Calc(); class Math{ public Math(){ } public void Calc(){ List<string> col = new List<string> {"red","blue","yellow"}; var y = col.Select(x => { Write(x); return x; }); } public void Write(string msg){ Console.WriteLine(msg); } }
↓
結果は何も出力されない。 Selectは遅延実行なので、foreachで呼ばれたり、ToList()、ToArray()が呼ばれなければ実際には実行されないからだ。
・・・ var y = col.Select(x => { Write(x); return x; }).ToList(); // ToList()やToArray()をする ・・・
や
public void Calc(){ List<string> col = new List<string> {"red","blue","yellow"}; var y = col.Select(x => { Write(x); return x; }); foreach(var c in y) // foearchでlinqを呼ぶ { Console.Write(""); } }
とするとlinqが実行される。
# dotnet run red blue yellow