Pular para conteúdo

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 foreach manuais 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.