- 追加された行はこの色です。
- 削除された行はこの色です。
using System;
using System.Collections.Generic;
using System.Linq;
namespace FizzBuzz
{
static class Program
{
static IEnumerable<string> FizzBuzz()
{
for (var i = 1; ; i++)
{
var result = "";
if ( i % 3 == 0 ) result += "Fizz";
if ( i % 5 == 0 ) result += "Buzz";
yield return result == "" ? i.ToString() : result;
}
}
static void Main(string[] args)
{
foreach ( var s in FizzBuzz().Take(100) )
{
Console.WriteLine(s);
}
}
}
}
短くしてみた
using System;
using System.Collections.Generic;
using System.Linq;
namespace FizzBuzz
{
static class Program
{
static void Main(string[] args)
{
var filter = new Dictionary<int,string>() {{3, "Fizz"}, {5, "Buzz"}};
Enumerable.Range(1, 100).Select(i => filter.Where(kv => (i % kv.Key) == 0)
.Aggregate("", (s, kv) => s += kv.Value, s => s == "" ? i.ToString() : s))
.ToList().ForEach(Console.WriteLine);
}
}
}
//改行してもいいのよ