Convertendo coleções com MapToList()
O método MapToList<TSource, TTarget>() permite transformar uma coleção de objetos em uma nova lista com instâncias do tipo de destino.
Ele segue a mesma lógica do MapTo<T>(), aplicando as conversões automaticamente com base em nomes e tipos compatíveis entre as propriedades.
Quando usar
Esse método é ideal quando você precisa converter listas de DTOs recebidos em APIs, comandos, eventos ou qualquer outro tipo intermediário em entidades do seu domínio.
Exemplo prático
public class UsuarioDto
{
public string Nome { get; set; }
public string Perfil { get; set; } // será convertido para enum
}
public enum TipoPerfil
{
Administrador,
Operacional
}
public class Usuario
{
public string Nome { get; set; }
public TipoPerfil Perfil { get; set; }
}
Transformando uma lista de UsuarioDto em Usuario:
var listaDto = new List<UsuarioDto>
{
new UsuarioDto { Nome = "Ana", Perfil = "Administrador" },
new UsuarioDto { Nome = "João", Perfil = "Operacional" }
};
var usuarios = listaDto.MapToList<UsuarioDto, Usuario>();
Cada item da lista será convertido com base nas mesmas regras aplicadas ao
MapTo<T>().
Benefícios
- Conversão em lote simples e direta
- Usa o mesmo cache interno de expressões que o
MapTo<T>()para desempenho - Sem necessidade de laços
foreachmanuais ou bibliotecas externas
Considerações
- A lista de origem não pode ser
null(gera exceção) - O tipo de destino deve ter um construtor público sem parâmetros
- As conversões seguem as mesmas regras do
MapTo<T>()
Rápido e previsível
MapToList<TSource, TTarget>() é ideal para pipelines de dados, transformações em massa e camadas de entrada de API.