Putting aside why you implement custom mapper, when there are many solutions available, you can try following:
private static List<TDestination> MapToList<TSource, TDestination>(List<TSource> source)
{
var target = new List<TDestination>(source.Count);
var addMethod = target.GetType().GetMethod("Add");
foreach (var item in source)
{
TDestination mappedObj = //DOMAP
addMethod.Invoke(target, new object[] { mappedObj });
}
return target;
}