首页 > 解决方案 > 将一个类列表中的数据分配给另一个类列表

问题描述

我有以下类在反序列化 JSON 字符串后填充:

public class Doors
{
    public List<Door> doors { get; set; }
}

public class Door
{
    public int id { get; set; }
    public string name { get; set; }
    public bool elevator { get; set; }
}

JSON字符串:

var result = JsonConvert.DeserializeObject<Doors>(response.Content);
// "{\"doors\":[{\"id\":1,\"name\":\"Main Door\",\"elevator\":false},{\"id\":2,\"name\":\"Back Door\",\"elevator\":false}]}"

数据很好地映射到我的班级,然后我尝试将班级数据传递给另一个班级:

public class WS4APIResult
{   
    public List<Door> doors { get; set; } = new List<Door>();      
}

public class Door
{
    public int id { get; set; }
    public string name { get; set; }
    public bool elevator { get; set; }
}

return new WS4APIResult() {         
    doors = result.doors
}

出现以下错误:请问有什么想法吗?

无法将类型隐式转换'System.Collections.Generic.List<WS4PortalApi.Models.Door>''System.Collections.Generic.List<WS4PortalApi.Domain.Door>'

标签: c#asp.net-web-api

解决方案


如果您键入,这两个 c#-Files 引用不同的类Door。您需要实现 和 之间的WS4PortalApi.Models.Door转换WS4PortalApi.Domain.Door

喜欢:

public static WS4PortalApi.Domain.Door DoorConvert(WS4PortalApi.Models.Door door)

然后你可以使用 linq 生成一个新的 List

doors = result.doors
    .Select(d => DoorConvert(d))
    .ToList();

推荐阅读