Goto ok para romper loops aninhados?

@JavaScript suporta uma sintaxe semelhante a goto para interromper loops aninhados. Não é uma ótima idéia em geral, mas é considerada uma prática aceitável. C # não suporta diretamente obreak labelName sintaxe ... mas suporta o infamegoto.

Acredito que o equivalente possa ser alcançado em C #:

    int i = 0;            
    while(i <= 10)
    {
        Debug.WriteLine(i);
        i++;
        for(int j = 0; j < 3; j++)
            if (i > 5)
            {
                goto Break;//break out of all loops
            }
    }

    Break:

Pela mesma lógica do JavaScript, o cenário de loop aninhado é um uso aceitável degoto? Caso contrário, a única maneira de obter essa funcionalidade é definindo umbool com o escopo apropriado.