読者です 読者をやめる 読者になる 読者になる

雑記 - otherwise

最近はDQ10しかやっていないダメ技術者がちまちまと綴る雑記帳

FizzBuzz

C#

過去の記事を確認したら、 Blog では扱っていなかったみたいですね。(どこかに書いた記憶はあるんだけど……、どっかの掲示板だったかしら)
なので、改めて私なりの回答を。
# ネタですよ。もし入社試験とかで出されたらこんな回答は出しません。素直にループで書くと思います。

class Foo {
  static void Main() {
    foreach (var s in new FizzBuzz(100)) {
      Console.WriteLine(s);
    }
  }
}

class FizzBuzz : IEnumerable {
  int _end;

  public FizzBuzz(int end) {
    _end = end;
  }

  public IEnumerator GetEnumerator() {
    foreach (var i in Enumerable.Range(1, _end)) {
      yield return
        i % 15 == 0 ? "FizzBuzz"
        : i % 3 == 0 ? "Fizz"
        : i % 5 == 0 ? "Buzz"
        : i.ToString();
    }
  }
}

……無駄が多いとか気にしません。ネタですし。 :p