#!/usr/bin/env /friends/bin/monoscript using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { // FizzBuzzの無限リスト var FizzBuzz = Enumerable.Range(0, int.MaxValue).Select(i => (i % 15 == 0) ? "FizzBuzz" : (i % 3 == 0) ? "Fizz" : (i % 5 == 0) ? "Buzz" : i.ToString()); // Skipが起点、Takeが表示数に対応する FizzBuzz.Skip(1).Take(100).ForEach((s, i) => Console.WriteLine("{0,3}:{1}", i + 1, s)); } } public static class ExtensionMethods { // indexが取れるForEach public static void ForEach(this IEnumerable source, Action action) { int index = 0; foreach (var item in source) { action(item, index++); } } }