none
Tratar itens no foreach em uma view RRS feed

  • Pergunta

  • Pessoal bom dia, 

    na minha view, eu carrego um foreach de uma coleção de objetos.

    Hoje ela fica assim:

    Item1 Item2 Item3
    Exemplo: Casa Carro Moto

    Quero que o texto tenha este resultado: Casa, Carro e Moto

    Ou seja, durante a passagem dos itens no foreach, eu preciso tratar. Quando for o penúltimo item, eu devo colocar "e" entre os item. E os outros, colocar "," entre eles.

    Eu tenho algo como isso:

    @foreach (var item in Model.Itens)
                        {
                            if (Model.Itens.IndexOf(cargo) != Model.Itens.Count - 1)
                            {
                                @item.Nome<text>, </text>
                            }
                            else
                            {
                                @item.Nome<text>.</text>
                            }
                        }

    O resultado foi esse: Casa, Carro, Moto.

    Porém na minha última , quero substituir por E para ficar: 

    Casa, Carro e Moto.

    Estou estudando, caso eu consiga, posto aqui. obrigado

    quarta-feira, 1 de junho de 2016 12:44

Respostas

  • Boa noite,

    Existe outras maneiras de fazer isso, mas seguindo sua linha de raciocínio:

    @foreach (var item in Model.Itens)
    {
        if (Model.Itens.IndexOf(item) == Model.Itens.Count - 2)
        {
            @item.Nome<text> e </text>
        }
        else if (Model.Itens.IndexOf(item) != Model.Itens.Count - 1)
        {
            @item.Nome<text>, </text>
        }
        else
        {
            @item.Nome<text>.</text>
        }
    }

    Espero ter ajudado.

    Att,


    Se a resposta contribuiu com seu aprendizado por favor marque como util, se solucionou seu problema marque como resposta.

    • Sugerido como Resposta Silvaney quinta-feira, 2 de junho de 2016 01:59
    • Marcado como Resposta welington jrModerator terça-feira, 12 de dezembro de 2017 22:08
    quinta-feira, 2 de junho de 2016 01:59