Foreach C#

Foreach é um Laço ou Loop que utilizamos para percorrer uma lista ou objeto. Com certeza é um dos modos mais fáceis e simples de percorrer uma lista.

Segue um exemplo de Foreach com a explicação abaixo:



string[] cores;
cores = new string[3];
cores[0] = "vermelho";
cores[1] = "verde";
cores[2] = "azul";

foreach(string cor in cores)
{
if(cor == "azul")
Response.Write("Minha cor preferida está na lista!");
}


Explicação: Das linhas 1 a 5 criamos um Array ou lista chamado cores com três valores: vermelho, azul e verde. Para aprender sobre Array’s clique aqui.

O Foreach percorre a lista, ou Array, “cores” sendo que ele diz que a string “cor” é o valor de cada Loop que ele faz na lista cores. (“string cor in cores”). Por exemplo, no primeiro Loop, a string “cor” é “vermelho”, depois “verde” e depois “azul”.

Linhas 9 e 10: Se encontrarmos a cor “azul” então imprimimos uma mensagem dizendo que a minha cor preferida está na lista.

13 Comentários


  1. Sou iniciante na linguagem C# e esta muito bom a explicação. Parabéns!!!

    Responder

  2. Show de material, parabens.

    Tem como voce fazer um demo de ZedGraph?

    Tambem em linguagem simples pode explicar os muitos metodos e o fluxo entre os metodos?

    Abraços,
    ocaccy

    Responder

  3. Cara, to conhecendo um pouco de seu site! Muito boa explicação e fácil. O legal é que você usa palavras didáticas.

    Responder

    1. Concordo com o Vinicius…
      Facilita bastante o entendimento pra quem está iniciando.

      Responder

  4. Olá, primeiramente queria dizer que seu site é ótimo e contém dicas ótimas. Bom, queria te pedir uma ajuda em meu código que é simples. Ele é o seguinte, minha form tem um textbox e um botão, no textbox o usuário irá digitar algum nome e depois apertar no botão, se o nome existir na lista que informei, aparece uma caixa de mensagem dizendo que o nome existe, se não existir, aparece uma dizendo que o nome não existe. Mas o problema é, ele só verifica o primeiro nome que informei no array e o resto não, meu código está assim:

    string[] nomes;
    nomes = new string[3];

    nomes[0] = “lucas”;
    nomes[1] = “carol”;
    nomes[2] = “alice”;

    foreach (string n in nomes)
    {
    string check = textBox1.Text;
    if (check != n)
    {
    MessageBox.Show(“Nome não encontrado”);
    break;
    }else{
    MessageBox.Show(“Nome encontrado”);
    break;
    }
    }
    }
    }
    }

    Responder

    1. Olá Guilherme. O problema está no break. Quando ele não encontra o primeiro executa um break no foreach e não vai para os próximos.
      Segue solução:
      string[] nomes;
      nomes = new string[3];

      nomes[0] = “lucas”;
      nomes[1] = “carol”;
      nomes[2] = “alice”;

      int cont = 1;

      foreach (string n in nomes)
      {
      string check = TextBox1.Text;
      if (check == n)
      {
      Response.Write(“Nome encontrado”);
      break;
      }
      if (cont == nomes.Length)
      {
      Response.Write(“Nome não encontrado”);
      }
      cont++;

      }

      A explicação é simples: Se encontrar o nome, sai do foreach através do break. Caso não encontre(ou seja, o número de verificações(cont) é igual ao tamanho do array(nomes.Lenght)) então exibe a mensagem de erro.

      Abraço.

      Responder

      1. Obrigado Cesar, funcionou perfeitamente. Eu não sabia que eu podia fazer essa incrementação no loop foreach. Grande abraço!

        Responder

  5. Olá, primeiramente, parabéns pela explicação e dedicação. Pode me ajudar ? Sou iniciante em linguagem C#, asp.net, e preciso fazer um loop.
    “Somatório do rateio dos Beneficiários, com operação diferente de “exclusão”, difere de 100%”. Ou seja, tenho que calcular o somatório do rateio de cada Beneficiário, comparar e verificar se a soma dá 100%. Se não der, exibe a mensagem : ” Rateio dos Beneficiários diferente de 100%”.

    Pode ver se está correto o que eu fiz :

    Segue o código:

    var listaBeneficiarios = servicoBeneficiarioProposta.SelecionarTodos(propostaInscricao);
    int conj_comp = 0;

    foreach (var beneficiario in listaBeneficiarios)
    {
    Console.WriteLine(beneficiario);

    if (beneficiario.Parentesco.Id == Parentesco.CONJUGE || beneficiario.Parentesco.Id == Parentesco.COMPANHEIRO)
    conj_comp++;

    if (conj_comp > 1)
    break;

    if (conj_comp > 1)
    {
    ModelState.AddModelError(“”, “Existe mais de uma ocorrência de cônjuge/companheiro.”);
    }

    if (beneficiario.IdOperacaoProposta != OperacaoProposta.OPERACAO_PROPOSTA_EXCLUSAO)
    {
    var rateio = beneficiario.Rateio;
    var somatorio = rateio++;

    if (somatorio != 100)
    {
    ModelState.AddModelError(“”, “Rateio dos beneficiários diferente de 100%”);
    }
    }

    Responder

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*