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);
}
}