none
Recuperar List Objeto, e armazenar em outra List RRS feed

  • Pergunta

  • Olá <g class="gr_ gr_7 gr-alert gr_spell gr_inline_cards gr_disable_anim_appear ContextualSpelling ins-del multiReplace" data-gr-id="7" id="7">pessoal</g>!

       Talvez a resposta esteja bem na minha frente, mas não estou conseguindo enxergar a solução. é o seguinte:

    eu possuo esse metodo ai abaixo onde eu recupero uma lista de NosXml, percorro cada nó navego pelos Elements e adiciono em itens

                   

    var itens = new List<Item>();

    var itemXml = SelecionarListadeNos(xml.DocumentElement, "//ITENS");
    foreach (XmlElement dadosItem in itemXml)
    foreach (XmlElement i in dadosItem)
        {
           var item = new Item(RecuperarInteiroXml(i, "ID"));
            item.Ordem = RecuperarInteiroXml(i, "ORDEM");
            item.Grupo = RecuperarTextoXml(i, "GRUPO");
            item.Descricao = RecuperarTextoXml(i, "DESCRICAO");
            itens.Add(item);
         }

    aqui nesse metodo eu faço a mesma coisa para recuperar e armazenar. 

    var disciplinas = new List<Disciplina>();
                if (xml != null)
                {
                    var disciplinaXml = SelecionarListadeNos(xml.DocumentElement, "//DISCIPLINAS");
                    foreach (XmlElement dadosDisciplina in disciplinaXml)
                    {
                        foreach (XmlElement item in dadosDisciplina)
                        {
                            var disciplina = new Disciplina(RecuperarInteiroXml(item, "ID"));
                            disciplina.Tipo = RecuperarTextoXml(item, "TIPO");
                            disciplina.CodigoArea = RecuperarInteiroXml(item, "CODIGOAREA");
                            disciplina.Nome = RecuperarTextoXml(item, "NOME");
                            disciplina.ValidarNotas = RecuperarBool(item, "VALIDARNOTAS");
                            disciplina.CargaHoraria = RecuperarInteiroXml(item, "CARGAHORARIA");
                            disciplina.ListarItensDisciplina = RecuperaListadeItens(dadosDisciplina);
                            disciplinas.Add(disciplina);
                        }

    PS.: como eu faço para além de invocar o metodo recuperar ITENS, e armazenar dentro de minha Lista de Disciplinas, onde cada disciplina possue uma coleção de itens. Ex: disci 1, possue 5 itens,  disci 2, possue 5 itens. etc..

    sexta-feira, 16 de fevereiro de 2018 22:07

Respostas

  • Bom dia, Sandro Developer. Tudo bem?

    Conseguiu o que precisava? Se ainda não, o que falta?

    Resposta: olá! consegui sim, tive que mudar algumas coisas no código, a idéia do nosso colega Juliano foi massa, mas não cheguei aproveita-lá.

    modifiquei essa linha (var itemXml = SelecionarListadeNos(xml.DocumentElement, "//ITENS");)

    para essa abaixo, basicamente foi isso.

     var itemXml = SelecionarListadeNos(node as XmlElement, "ITENS/ITEM");

    Atenciosamente,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    • Marcado como Resposta Sandro Developer terça-feira, 20 de fevereiro de 2018 11:25
    terça-feira, 20 de fevereiro de 2018 11:25

Todas as Respostas

  • Sandro, 

    Não deu pra entender a dúvida direito. O que está acontecendo de problema ou está faltando no código?


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    sexta-feira, 16 de fevereiro de 2018 22:46
  • está é faltando no código adicionar na list relacionada ao recupera disc, trazer a list itens

    sexta-feira, 16 de fevereiro de 2018 22:51
  • Mas qual é sua dúvida nesta parte? Não sabe selecionar uma parte do XML? Caso sim, como é o XML? Qual é a parte que precisa selecionar?

    Uma coisa que vi é que você faz dois loops para a mesma variável:

    foreach (XmlElement dadosItem in itemXml)
    foreach (XmlElement i in dadosItem)

    Faltou você indicar a propriedade que seja um array ou coleção. Ex:

    foreach (XmlElement dadosItem in itemXml)
    foreach (XmlElement i in dadosItem.ChildNodes)


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    sexta-feira, 16 de fevereiro de 2018 23:13
  • Mas qual é sua dúvida nesta parte? Não sabe selecionar uma parte do XML? Caso sim, como é o XML? Qual é a parte que precisa selecionar?

    Uma coisa que vi é que você faz dois loops para a mesma variável:

    foreach (XmlElement dadosItem in itemXml) foreach (XmlElement i in dadosItem)

    Resposta: Sim, eu fiz pois uma é para ler os Nos "Raiz" o outro entra nesse "NoRaiz" e ler

    os Elements, ai eu instancio o Item recuperando o ID,ORDEM, GRUPO, DESCRICAO


    Faltou você indicar a propriedade que seja um array ou coleção. Ex:

    foreach (XmlElement dadosItem in itemXml)
    foreach (XmlElement i in dadosItem.ChildNodes)


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.


    sexta-feira, 16 de fevereiro de 2018 23:31
  • Bom dia, Sandro Developer. Tudo bem?

    Conseguiu o que precisava? Se ainda não, o que falta?

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 19 de fevereiro de 2018 17:28
    Moderador
  • Bom dia, Sandro Developer. Tudo bem?

    Conseguiu o que precisava? Se ainda não, o que falta?

    Resposta: olá! consegui sim, tive que mudar algumas coisas no código, a idéia do nosso colega Juliano foi massa, mas não cheguei aproveita-lá.

    modifiquei essa linha (var itemXml = SelecionarListadeNos(xml.DocumentElement, "//ITENS");)

    para essa abaixo, basicamente foi isso.

     var itemXml = SelecionarListadeNos(node as XmlElement, "ITENS/ITEM");

    Atenciosamente,


    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    • Marcado como Resposta Sandro Developer terça-feira, 20 de fevereiro de 2018 11:25
    terça-feira, 20 de fevereiro de 2018 11:25