You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将SearchCompanyResponse中的列表映射为Company类型列表companies

将SearchCompanyResponse映射为List的几种实现方式

手动遍历(直观可控,适合简单场景)

直接循环结果集,逐个创建Company对象并添加到目标列表:

var searchCompany = new SearchCompanyRequest();
searchCompany.Query = request.Name;
searchCompany.DatlinqKey = "TestKey";
var searchCompanyResponse = GetApi<SearchCompanyRequest,SearchCompanyResponse>(DatlinqApiMethod.SearchCompany, searchCompany);        
var companies = new List<Company>();

if (searchCompanyResponse?.Result != null)
{
    foreach (var item in searchCompanyResponse.Result)
    {
        companies.Add(new Company
        {
            Id = item.Id,
            Name = item.Name
        });
    }
}

LINQ投影(代码简洁,适合字段匹配场景)

利用LINQ的Select方法快速转换集合,一行代码完成映射:

var searchCompany = new SearchCompanyRequest();
searchCompany.Query = request.Name;
searchCompany.DatlinqKey = "TestKey";
var searchCompanyResponse = GetApi<SearchCompanyRequest,SearchCompanyResponse>(DatlinqApiMethod.SearchCompany, searchCompany);        

var companies = searchCompanyResponse?.Result?
    .Select(item => new Company { Id = item.Id, Name = item.Name })
    .ToList() ?? new List<Company>();

AutoMapper(适合多场景复用,减少重复代码)

如果项目已引入AutoMapper,先配置映射规则,再快速转换:

  1. 全局配置映射规则(如在Startup/Program.cs中初始化):
var mapperConfig = new MapperConfiguration(cfg =>
{
    cfg.CreateMap<SearchCompanyResponseCompany, Company>();
});
var mapper = mapperConfig.CreateMapper();
  1. 业务代码中执行映射:
var searchCompany = new SearchCompanyRequest();
searchCompany.Query = request.Name;
searchCompany.DatlinqKey = "TestKey";
var searchCompanyResponse = GetApi<SearchCompanyRequest,SearchCompanyResponse>(DatlinqApiMethod.SearchCompany, searchCompany);        

var companies = mapper.Map<List<Company>>(searchCompanyResponse?.Result);

注意事项

  • 必须做空值判断:searchCompanyResponse或Result可能为null,直接访问会触发空引用异常,上述示例均包含空值处理逻辑。
  • 当SearchCompanyResponseCompany与Company字段结构完全一致时,前两种方式足够高效;若映射规则复杂或需多处复用,AutoMapper是更优选择。

内容的提问来源于stack exchange,提问作者Robin Groot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 13:25:20