es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Utilizando Math.Abs en una propiedad decimal nullable.

Tengo un objeto de tipo.

class A
{
public int Id{get;set;}
public decimal? Num {get;set;}
}

Luego tengo los datos List objList poblados desde la base de datos.
Necesito hacer que Num sea un número positivo, así que intenté lo siguiente.

objList = objList.ForEach(x=>x.Num = Math.Abs(x.Num));

Dado que Num es un decimal nullable, no puedo usarlo en Linq. ¿Cómo puedo usarlo para omitir los valores nulos y convertir los valores negativos en valores positivos usando Math.abs?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para modificar la propiedad Num de los objetos A en objList para que sean positivos y manejar correctamente los valores nulos, puedes utilizar el siguiente código:

    objList.ForEach(x => {
        if (x.Num.HasValue && x.Num.Value < 0) {
            x.Num = Math.Abs(x.Num.Value);
        }
    });
    

    Esto recorrerá cada objeto en objList y comprobará si Num tiene un valor y es negativo. Si se cumplen ambas condiciones, establecerá Num en su valor absoluto. La propiedad HasValue comprueba si Num no es nulo, mientras que Value obtiene el valor decimal subyacente. Este enfoque evita el problema de intentar asignar un valor decimal a un decimal nullable.

Comments are closed.