c# - 将一个类列表中的数据分配给另一个类列表
问题描述
我有以下类在反序列化 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#-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();
推荐阅读
- php - AWS Elastic Beanstalk + Laravel, Nginx Configuration
- ansible - Ansible lint 报告“软件包安装不应使用最新的”
- python - 使用 python-docx 插入图像后 Word 文档的表格单元格中的空行
- string - 在结构字段中查找字符串的索引
- python-3.x - 使用 cerberus 正则表达式验证字符串以模式结尾
- ruby-on-rails - 如何干燥 Rails 6 部分形式
- r - Plotly (R) 使小数成为条形图中最大的条形
- mysql - 有没有办法可视化 MySQL 外键级联?
- sql - SQL 通配符不产生任何结果
- java - 使用 JPA 和 Hibernate 覆盖 CrudeRepository save() 错误