Em .Net, apenas o Visual Basic permite intervalos em instruções switch, mas em C # não há sintaxe válida para isso.
Enfrentando seu problema específico em C #, eu o resolveria assim:
if(number >= 1 && number <= 9)
{
if(number < 5)
{
}
else
{
}
}
else
{
}
Para ilustrar isso melhor, imagine que você tem um valor percentual.
Usando seu problema como um modelo, você pode desejar que se pareça com:
switch (percentage)
{
case (0 to 19):
break;
case (20 to 39):
break;
case (40 to 69):
break;
case (70 to 79):
break;
case (80 to 100):
break;
default:
break;
}
No entanto, como o C # não permite essa sintaxe, aqui está uma solução que o C # permite:
if (percentage >= 0 && percentage <= 100)
{
if (percentage >= 40)
{
if (percentage >= 80)
{
}
else
{
if (percentage >= 70)
{
}
else
{
}
}
}
else
{
if (percentage >= 20)
{
}
else
{
}
}
}
else
{
}
Pode demorar um pouco para se acostumar, mas tudo bem assim que você conseguir.
Pessoalmente, gostaria de receber instruções switch para permitir intervalos.
O futuro das instruções de switch C #
Aqui estão algumas idéias que tive de como as instruções switch podem ser melhoradas:
Versão A
switch(value)
{
case (x => x >= 1 && x <= 4):
break;
case (x => x >= 5 && x <= 9):
break;
default:
break;
}
Versão B
switch(param1, param2, ...)
{
case (param1 >= 1 && param1 <= 4):
break;
case (param1 >= 5 && param1 <= 9 || param2 != param1):
break;
default:
break;
}