criar uma matriz de seus números necessários e uso foreach
PaulF
2
Poderia fornecer mais detalhes para que possamos ajudar a fornecer soluções relevantes? Com que frequência você planeja pular números? Quantos números você espera pular? Como você sabe quais números pular? Por que você está pulando números em primeiro lugar? O que e como você está codificando isso?
Corentin Pane
não é assim tão fácil como eu pensava no início para encontrar uma duplicata
Mong Zhu
Respostas:
13
Você pode usar uma matriz para fornecer os números que deseja assim
int[] loop =newint[]{1,2,4,5,7};foreach(int i in loop)Console.WriteLine(i);
Ou fazê-lo em linha que não é tão limpo quando a lista de valores cresce na minha opinião
foreach(int i innewint[]{1,2,4,5,7})Console.WriteLine(i);
O segundo é mais limpo para mim - a matriz está apenas no escopo durante o loop. Além disso, para torná-lo realmente "limpo", você pode remover a intdeclaração, pois o compilador determinará isso no conteúdo.
Obviamente, a resposta certa para o caso geral é usar foreachou uma pesquisa indexada, como mostrado nas outras respostas, mas apenas por uma questão de integridade:
Você pode usar qualquer instrução dentro de uma forexpressão, incluindo condicionais. Com isso em mente, é fácil criar um incremento condicional ou mesmo um condicional exaustivo (máquina de estado?) Para um conjunto necessário:
for(int i =1; i <=7; i +=(i ==5|| i ==2)?2:1){Console.Write(i);}// Output: 12457for(int i =1; i >0; i = i switch{1=>2,2=>4,4=>5,5=>7,7=>-1}){Console.Write(i);}// Output: 12457
Ou mesmo algo realmente bobo, como uma pesquisa de auto-indexação:
for(int i =1; i >0; i =new[]{0,2,4,0,5,7,0,-1}[i]){Console.Write(i);}// Output: 12457
Respostas:
Você pode usar uma matriz para fornecer os números que deseja assim
Ou fazê-lo em linha que não é tão limpo quando a lista de valores cresce na minha opinião
fonte
int
declaração, pois o compilador determinará isso no conteúdo.fonte
Basicamente, as respostas aqui estão corretas, apenas porque você pediu explicitamente
for
umforeach
loop em vez de um loop:https://dotnetfiddle.net/c5yjPe
fonte
Se você deseja particularmente o loop, vá com isso:
fonte
Obviamente, a resposta certa para o caso geral é usar
foreach
ou uma pesquisa indexada, como mostrado nas outras respostas, mas apenas por uma questão de integridade:Você pode usar qualquer instrução dentro de uma
for
expressão, incluindo condicionais. Com isso em mente, é fácil criar um incremento condicional ou mesmo um condicional exaustivo (máquina de estado?) Para um conjunto necessário:Ou mesmo algo realmente bobo, como uma pesquisa de auto-indexação:
fonte