在C#中使用AutoMapper映射ArrayList,可以按照以下步骤进行:
Install-Package AutoMapper
public class SourceType
{
public string Name { get; set; }
public int Age { get; set; }
}
public class DestinationType
{
public string FullName { get; set; }
public int Years { get; set; }
}
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap()
.ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.Name))
.ForMember(dest => dest.Years, opt => opt.MapFrom(src => src.Age));
});
var mapper = config.CreateMapper();
在此配置中,我们指定了将SourceType的Name属性映射到DestinationType的FullName属性,将SourceType的Age属性映射到DestinationType的Years属性。
var arrayList = new ArrayList()
{
new SourceType { Name = "John", Age = 30 },
new SourceType { Name = "Jane", Age = 25 }
};
var destinationList = mapper.Map>(arrayList);
在上述代码中,我们使用Map方法将ArrayList映射到DestinationType的List。
现在,destinationList将包含两个DestinationType对象,它们是根据ArrayList中的SourceType对象进行映射生成的。
完整示例代码如下:
using AutoMapper;
using System;
using System.Collections;
using System.Collections.Generic;
public class SourceType
{
public string Name { get; set; }
public int Age { get; set; }
}
public class DestinationType
{
public string FullName { get; set; }
public int Years { get; set; }
}
public class Program
{
public static void Main(string[] args)
{
var config = new MapperConfiguration(cfg =>
{
cfg.CreateMap()
.ForMember(dest => dest.FullName, opt => opt.MapFrom(src => src.Name))
.ForMember(dest => dest.Years, opt => opt.MapFrom(src => src.Age));
});
var mapper = config.CreateMapper();
var arrayList = new ArrayList()
{
new SourceType { Name = "John", Age = 30 },
new SourceType { Name = "Jane", Age = 25 }
};
var destinationList = mapper.Map>(arrayList);
foreach (var destination in destinationList)
{
Console.WriteLine($"FullName: {destination.FullName}, Years: {destination.Years}");
}
}
}
运行上述代码将输出以下结果:
FullName: John, Years: 30
FullName: Jane, Years: 25
这样就完成了使用AutoMapper映射ArrayList的解决方法。