C# のイテレータの振る舞いを理解したところで,次のコードを見てみましょう. static IEnumerable<int> Rand() { Trace.WriteLine("Generated"); Random rand = new Random(); while (true) { yield return rand.Next(); } } このイテレータは,見ての通り無限に疑似乱数列を返すというものです.先ほど述べたように,"Generated" と表示されるのは初めて MoveNext() が実行されたときであることに注意しておきましょう. さて,C# 3.0 LINQ の Take メソッドを使用し,この疑似乱数列から 10 個の要素を取り出してみます.と,ここでクイズです. static void Main(string[] args) { var seq = Rand().