Para convertir una lista a otra hay varios enfoques, y te mostraré los dos más utilizados.
Te pongo en contexto
Estás aplicando el patrón DTO y por eso necesitas convertir un List de tipo Estudiante a un List de tipo EstudianteDto.
Si no sabes qué es el patrón DTO, aquí te lo enseño.
public class Estudiante
{
public int Id {get; set;}
public string Nombre {get; set;}
public int Edad {get; set;}
}
public class EstudianteDto
{
public int Id {get; set;}
public string Nombre {get; set;}
public int Edad {get; set;}
}
Como puedes ver tienen las mismas propiedades, eso es muy común cuando queremos hacer una conversión entre listas.
Iterando por cada elemento
Esta forma de mapeo o conversión es la clásica y muy utilizada, consiste en iterar por cada elemento de la lista origen, en este caso List<Estudiante> e ir convirtiendo cada elemento al tipo EstudianteDto para finalmente agregarla a una nueva lista de tipo List<EstudianteDto>
List<Estudiante> listaEstudiantes = new(){
new Estudiante{ Id = 1, Nombre = "Juan", Edad = 20},
new Estudiante{ Id = 2, Nombre = "Ana", Edad = 22},
};
List<EstudianteDto> listaEstudiantesDto = new();
foreach(var item in listaEstudiantes)
{
listaEstudiantesDto.Add(new EstudianteDto{Id = item.Id, Nombre = item.Nombre, Edad = item.Edad});
}
Utilizando LINQ
Esta forma es más limpia.
List<Estudiante> estudiantes = new(){
new Estudiante { Id = 1, Nombre = "Luis", Edad = 35 },
new Estudiante { Id = 2, Nombre = "Juana", Edad = 32 }
};
List<EstudianteDto> estudiantesDto = estudiantes
.Select(x => new EstudianteDto{ Id = x.Id, Nombre = x.Nombre, Edad = x.Edad})
.ToList();
Eso es todo por ahora estimado dev! hasta la próxima la semana que viene! 🦊✌️
Si esta entrada te ha gustado crack, compártela! 🐿️😎
Créditos de foto de portada: Foto de Norbert Braun en Unsplash