En este caso el problema no es linq. El problema esta en la condicion.

Si pedis
(projection.ProjectionYear >= 2009 && projection.ProjectionMonth >= 12)
//llamemos a esto a
|| (projection.ProjectionYear <= 2010 && projection.ProjectionMonth <= 12)
//llamemos a esto b

a devuelve solo el mes 12 de 2009 y años siguientes, ya que no hay ningun
mes mayor a 12....
b devuelve los meses desde el mes 12 de 2010 para abajo --> si no hay
cargados años mayores a 2010 da la sensacion de no filtrar nada

si filtras por a y luego por b, es equivalente a hacer una interseccion:

a interseccion b --> el resultado es: por a los meses 12 del 2009 y años
siguientes. por b, meses anteriores o iguales al 12 de 2010. La interseccion
es el mes 12 del 2009 y 12 de 2010


El 17 de diciembre de 2009 08:45, Leonardo Micheloni <
leonardogabrielmichel...@gmail.com> escribió:

> Probaste clavarle un Reflector a ver el delegado que genera?? en una
> de esas te da más pistas....bue, yo haría eso :)
>
> 2009/12/16 Leandro Tuttini <ltuttini_lis...@yahoo.com.ar>:
> > hola
> >
> > les planteo una situacion algo extraña, que la verdad no entiendo porque
> no
> > funciona no parece muy compleja la situacion
> > resulta que tengo un lista de proyecciones de desembolso de prestamos y
> la
> > idea es filtrar por año-mes de inicio y fin
> >
> > al principio la idea era ahcer algo como esto:
> >
> >            List<Projection> projectionSubset;
> >
> >            projectionSubset = (from projection in
> > ProjectionsService.GetAll()
> >                                where (((projection.ProjectionYear >=
> 2009)
> > && (projection.ProjectionMonth >= 12))
> >                                        || ((projection.ProjectionYear <=
> > 2010) && (projection.ProjectionMonth <= 12)))
> >                                select projection).ToList<Projection>();
> >
> > pero note que esto no me filtraba correctamente, es mas no filtraba nada
> > directamente
> >
> > luego intente con esta otra forma
> >
> >           List<Projection> projectionSubset;
> >
> >            projectionSubset = (from projection in
> > ProjectionsService.GetAll()
> >                                 where (projection.ProjectionYear >= 2009)
> >                                     && (projection.ProjectionMonth >= 12)
> >                                 select projection).ToList<Projection>();
> >
> >             projectionSubset = (from projection in projectionSubset
> >                                 where (projection.ProjectionYear <= 2010)
> >                                     && (projection.ProjectionMonth <= 12)
> >                                 select projection).ToList<Projection>();
> >
> > pero resulto que solo devolvia  las proyecciones del año 2009 y mes 12
> > y la del 2010 año 12 pero solo estos dos meses el resto los descarta
> >
> > sera un tema que el >= y <= en linq no funciona como deberia ?
> > me suena extraño
> >
> > pero bueno notan que estoy haciando algo incorrecto?
> >
> > la idea es devolver todas la proyecciones entre estos rango de año-mes
> >
> > gracias
> > saludos
> >
> > ________________________________
> > Encontra las mejores recetas con Yahoo! Cocina.
> > http://ar.mujer.yahoo.com/cocina/
>
>

Responder a