Assign property value of an object to a list of objects

1

I have a list of objects: List. Well, this object has three properties, say, cnpj, action, and newness. I made a linq or lambda and it brought me all the results, say two lines. I make a foreach in the result of linq or lambda and how do I now assign each property of my object through the list of that object? So:

List<pdv> lista = new List<pdv>();
var resultado = (from ...).ToList();

foreach(var r in resultado)
{
   lista.Add(r.cnpj);//ISSO DÁ ERRO
}

In this way, I show only one cnpj, there being two. Always the last. new is of the POS type created before.

if (resultadoPdv.Count > 0 && resultadoAcao.Count > 0)
            {
                foreach (var r in resultadoPdv)
                {
                    novo.cnpj = r.Cnpj;
                    lista.Add(novo);
                }

                foreach (var r in resultadoAcao)
                {
                    novo.acao = r.acao;
                    novo.proximaAcao = r.proximaacao;
                    lista.Add(novo);
                }
            }

            return lista;

In this code, I can have two records, that is, the list has two rows, but with the same cnpj and I have two different cnpj.

foreach (var r in resultadoAcao)
                {
                    novo.acao = r.acao;
                    novo.proximaAcao = r.proximaacao;
                }

                foreach (var r in resultadoPdv)
                {
                    novo.cnpj = r.Cnpj;
                    lista.Add(novo);
                }

See how the web service return xml gets

<ArrayOfPdvNovo xmlns="http://schemas.datacontract.org/2004/07/V99SuporteTecnicoContracts" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<PdvNovo>
<acao>Visita Técnica</acao>
<cnpj>03146478000112</cnpj>
<proximaAcao>Agendamento de Visita Técnica Parceiro</proximaAcao>
</PdvNovo>
<PdvNovo>
<acao>Visita Técnica</acao>
<cnpj>03146478000112</cnpj>
<proximaAcao>Agendamento de Visita Técnica Parceiro</proximaAcao>
</PdvNovo>
</ArrayOfPdvNovo>

From Harry's reply, I changed it and looked like this:

PdvNovo novo = new PdvNovo();

            if (resultadoPdv.Count > 0 && resultadoAcao.Count > 0)
            {
                foreach (var r in resultadoAcao)
                {
                    novo.acao = r.acao;
                    novo.proximaAcao = r.proximaacao;
                    //lista.Add(novo);
                }

                foreach (var r in resultadoPdv)
                {
                    PdvNovo _cnpj = new PdvNovo();
                    _cnpj.cnpj = r.Cnpj;
                    _cnpj.acao = novo.acao;
                    _cnpj.proximaAcao = novo.proximaAcao;
                    lista.Add(_cnpj);
                }
            }
    
asked by anonymous 28.05.2014 / 15:56

1 answer

3

So:

List<pdv> lista = new List<pdv>();
var resultado = (from ...).ToList();

foreach(var r in resultado)
{
   pdv _item = new pdv(); // instancie dentro do for!
   _item.cnpj = r.cnpj; // da um enter aqui e vai colocando os outros campos ... 
   lista.Add(_item);
}
    
28.05.2014 / 16:42