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.

¿Puedo utilizar el resultado de ejecutar una expresión lambda para asignar una propiedad?

Estoy escribiendo un mapeador para modelos, y cuando necesito asignar valores a propiedades de tipo string desde cualquier otro tipo, me gustaría llamar al método ToString() en ellos, obtener el valor y asignarlo a la propiedad objetivo.
Mi código se ve algo así:

public class Foo
{
    public Guid Id { get; set; }
}

public class Bar
{
    public string Id { get; set; }
}

La expresión lambda de mapeo debería lucir así:

...
var $1 = new Bar();
$1.Id = parameter.Id.ToString();
...
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para crear una expresión lambda que mapee Foo a Bar y asigne la propiedad Id como una cadena de texto, puedes usar el siguiente código:

    Expression<><foo, bar="">> map = foo => new Bar
    {
        Id = foo.Id.ToString()
    };
    

    Esto crea una expresión lambda que toma un objeto Foo y devuelve un objeto Bar con la propiedad Id establecida como el resultado de llamar a ToString() en la propiedad Id del objeto Foo. Luego puedes usar esta expresión lambda para mapear objetos Foo a objetos Bar utilizando una biblioteca de mapeo o invocando manualmente la expresión lambda para cada objeto.</foo,>

Comments are closed.