Ajuda com Linq

15/08/2012

0

Bom dia pessoal,
estou tentando utilizar o linq para retornar alguns dados. Até consegui fazer, o exemplo abaixo está funcionando perfeitamente.
        public static ListSobrevidaGlobal ReturnListSobrevidaGlobal( int anoBase, string cidPesquisa, string estadioPesquisa )
        {
            ListSobrevidaGlobal listaCompleta = new ListSobrevidaGlobal();
            listaCompleta = ReturnListAtendimentos();
            if( listaCompleta != null && listaCompleta.Count  0 )
            {
                var listaSelecionada = from lista in listaCompleta
                                       where lista.ResId == 11445
                                       select lista;

                ListSobrevidaGlobal listaFinal = new ListSobrevidaGlobal();
                foreach( var item in listaSelecionada )
                {
                    SobrevidaGlobal sg = new SobrevidaGlobal()
                    {
                        ResId = item.ResId,
                        ListaCID = item.ListaCID,
                        DataObito = item.DataObito,
                        PrestadorId = item.PrestadorId
                    };
                    listaFinal.Add( sg );
                }
                return listaFinal;
            }
            else
            {
                return null;
            }
        }



Só que o where do código abaixo não é exatamente o quer preciso. Aí vem o problema que não estou conseguindo resolver

                var listaSelecionada = from lista in listaCompleta
                                       where lista.ResId == 11445
                                       select lista;


ao invés de lista.ResId == 11445, seria a data_diagnostico que é um valor que está dentro do campo lista.ListaCID.

para ficar mais claro segue a estrutura abaixo.

sobrevida global tem a propriedade ListaCID que é uma lista de CidXml
    public class SobrevidaGlobal
    {
        public int ResId { get; set; }
        public ListCidXml ListaCID { get; set; }
        public DateTime? DataObito { get; set; }
        public int? PrestadorId { get; set; }
    }


    public class CidXml
    {
        public DateTime Data { get; set; }
        public string Cid { get; set; }
        public string Tipo { get; set; }
        public string Estadio { get; set; }
    }


resumindo... seria o where onde da Data estiver entre valores que vem de parâmetros..só que não sei chegar nesse campo.. tipo
where lista.ListaCID.Data == 15/08/2012

obrigado
Eric Miranda

Eric Miranda

Responder

Posts

15/08/2012

Eric Miranda

Boa tarde galera..depois de muito apanhar ficou assim meu código final
       public static ListSobrevidaGlobal ReturnListSobrevidaGlobal( DateTime dataBase, string cidPesquisa, string estadioPesquisa )
        {
            ListSobrevidaGlobal listaCompleta = new ListSobrevidaGlobal();
            listaCompleta = ReturnListAtendimentos();
            int anoProcessamento = dataBase.Year - 6;
            DateTime dtInicio = new DateTime(anoProcessamento,1,1);
            DateTime dtFinal = new DateTime( anoProcessamento, 12, 31 );
            if( listaCompleta != null && listaCompleta.Count  0 )
            {
                var listaSelecionada = from lista in listaCompleta
                                       where lista.ListaCID.Exists( c = c.Cid == cidPesquisa && 
                                                                         c.Estadio == estadioPesquisa && 
                                                                         c.Data = dtInicio && c.Data = dtFinal )
                                       select lista;

                ListSobrevidaGlobal listaFinal = new ListSobrevidaGlobal();
                foreach( var item in listaSelecionada )
                {
                    SobrevidaGlobal sg = new SobrevidaGlobal()
                    {
                        ResId = item.ResId,
                        ListaCID = item.ListaCID,
                        DataObito = item.DataObito,
                        PrestadorId = item.PrestadorId
                    };
                    listaFinal.Add( sg );
                }
                return listaFinal;
            }
            else
            {
                return null;
            }
        }


abs
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar