none
cambiar valor de propiedad como resultado de una consulta linq RRS feed

  • Pregunta

  • public class Pago
    {
        public int Id { get; set; }
        public double Saldo { get; set; }
        public enum Status { pagado, parcial, pendiente}
    }
    
    
    public Class Pagador
    {
        public void Pagar()
        {
             List<Pago> pagos = new List();
             
    
             pagos.Select(x => x.Saldo == 0) //Status = pendiente
             pagos.Select(x => x.Saldo < 500)//Status = parcial
             pagos.Select(x => x.Saldo >= 500)//Status = Pagado
        }
    }

    el código de arriba es un ejemplo de lo que quiero lograr con linq pero no se como hacerlo, de una lista dependiendo si se cumple la condición cambia el valor de la propiedad status, si en la lista de arriba hubiera 20 registros con saldo 0 que a los 20 les ponga el status pendiente y lo mismo con las otras dos propiedades. 

    No quiero obtener una lista que cumpla la condición, quiero que los registros de la lista que cumplen la condición cambien su propiedad.

    ahora yo hice 3 consultas por que no se si se podría lograr en una sola.

    Podrían apoyarme con este tema 

    De antemano muchas gracias

    martes, 25 de septiembre de 2018 14:33

Respuestas

  • Veo que te hace falta la propiedad status como tal, porque solo tienes el enum (donde declaras tu enumeración), no te funciona dejándolo en el get de la propiedad tipo status?, algo así:

    Public Status Estado
    {
      get{
           return (Saldo == 0) ? Status.pendiente : ((Saldo < 500) ? Status.parcial : (Saldo>=500) ? Status.pagado : Status.noidentificado) ;
         };
    }

    Así cada vez que consultes la propiedad Estado de un pago esta estaría dada según el Saldo de ese pago.

    Saludos



    • Editado Yerald Mora martes, 25 de septiembre de 2018 15:17 Saldo >= 500 incluido
    • Marcado como respuesta niqel martes, 25 de septiembre de 2018 16:49
    martes, 25 de septiembre de 2018 15:06