using System;
using System.Collections.Generic;
using System.Linq;
namespace ConsoleApplication3
{
public static class Test
{
public static void MyForEach<T>(this IEnumerable<T> collection, Action<T> action)
{
foreach (T item in collection) { action(item); }
}
static void Main(string[] args)
{
var dictionary = new Dictionary<int, Func<int, string>> { { 15, (a) => "FizzBuzz" }, { 3, (a) => "Fizz" }, { 5, (a) => "Buzz" }, { 1, (a) => a.ToString() } };
Enumerable.Range(1, 100)
.Select(n => dictionary.First(kv => n % kv.Key == 0).Value(n))
.MyForEach(Console.WriteLine);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkxpbnE7CgpuYW1lc3BhY2UgQ29uc29sZUFwcGxpY2F0aW9uMwp7CiAgICBwdWJsaWMgc3RhdGljIGNsYXNzIFRlc3QKICAgIHsKICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgTXlGb3JFYWNoPFQ+KHRoaXMgSUVudW1lcmFibGU8VD4gY29sbGVjdGlvbiwgQWN0aW9uPFQ+IGFjdGlvbikKICAgICAgICB7CiAgICAgICAgICAgIGZvcmVhY2ggKFQgaXRlbSBpbiBjb2xsZWN0aW9uKSB7IGFjdGlvbihpdGVtKTsgfQogICAgICAgIH0KCiAgICAgICAgc3RhdGljIHZvaWQgTWFpbihzdHJpbmdbXSBhcmdzKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIGRpY3Rpb25hcnkgPSBuZXcgRGljdGlvbmFyeTxpbnQsIEZ1bmM8aW50LCBzdHJpbmc+PiB7IHsgMTUsIChhKSA9PiAiRml6ekJ1enoiIH0sIHsgMywgKGEpID0+ICJGaXp6IiB9LCB7IDUsIChhKSA9PiAiQnV6eiIgfSwgeyAxLCAoYSkgPT4gYS5Ub1N0cmluZygpIH0gfTsKCiAgICAgICAgICAgIEVudW1lcmFibGUuUmFuZ2UoMSwgMTAwKQogICAgICAgICAgICAgICAgICAgICAgLlNlbGVjdChuID0+IGRpY3Rpb25hcnkuRmlyc3Qoa3YgPT4gbiAlIGt2LktleSA9PSAwKS5WYWx1ZShuKSkgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAuTXlGb3JFYWNoKENvbnNvbGUuV3JpdGVMaW5lKTsKICAgICAgICB9ICAgICAgICAKICAgIH0KfQ==