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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar