###なぜ、この出力順になるのかわかりません。
C#でジェネリックメソッドを学習中です。
ネット上の情報を参考にしているのですが、私のレベルでは理解できない動きとなりました。
なぜ、この出力順になるのか、解説いただきたいです。
###該当のソースコード
C#
1using System; 2using System.Linq; 3using System.Collections.Generic; 4 5public static class Test 6{ 7 public static void Main() 8 { 9 var list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 10 var query = list.Where(x => x % 2 == 0).Trace().Select(x => x * 10); 11 foreach (var item in query) { 12 Console.WriteLine(item); 13 } 14 } 15 16 public static IEnumerable<T> Trace<T>(this IEnumerable<T> source) 17 { 18 foreach (var item in source) { 19 Console.WriteLine(item); 20 yield return item; 21 } 22 } 23}
###出力結果
2 20 4 40 6 60 8 80
私の予想では、
2 4 6 8 20 40 60 80
でした。
なぜ、最後のforeachが、途中で割り込むような出力になるのでしょうか?

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/12 02:34