Escribiendo FizzBuzz

Leyendo el horror de la codificación, acabo de encontrarme con FizzBuzz en otra ocasión.

El post original está aquí:Codificación del horror: ¿Por qué los programadores no pueden ... Programa?

Para aquellos que no lo saben: FizzBuzz es un juego para niños muy popular. Contando de 1 a 100, y cada vez que un número es divisible por 3 llamando "Fizz", cada vez que un número es divisible por 5 llamando "Buzz" y cada vez que un número es divisible por 3 y 5, llamando "FizzBuzz en lugar de número

Pero esta vez, comencé a codificarlo. Fue un trabajo de un minuto, pero hay varias cosas que no me gustan.

Aqui esta mi codigo

public void DoFizzBuzz()
{
    var combinations = new Tuple<int, string>[] 
    { 
        new Tuple<int, string> (3, "Fizz"), 
        new Tuple<int, string> (5, "Buzz"), 
    };

    for (int i = 1; i <= 100; ++i)
    {
        bool found = false;

        foreach (var comb in combinations)
        {
            if (i % comb.Item1 == 0)
            {
                found = true;
                Console.Write(comb.Item2);
            }
        }

        if (!found)
        {
            Console.Write(i);
        }

        Console.Write(Environment.NewLine);
    }
}

Así que mis preguntas son:

¿Cómo deshacerse del bool encontrado?¿Hay una mejor manera de probar que el foreach?

Respuestas a la pregunta(30)

Su respuesta a la pregunta