【发布时间】:2017-09-20 18:26:08
【问题描述】:
我有一个包含列表的类。我想将该列表复制到另一个包含相同类型和数量的属性的对象。
List<CinemaUnitSchema> cinemaUnitSchemas = new List<CinemaUnitSchema>();
foreach (CinemaUnit cinemaUnits in scenario.CinemaUnits)
{
cinemaUnitSchemas.Add(new CinemaUnitSchema
{
Name = cinemaUnits.Name,
AttendantPoints = cinemaUnits.AttendantPoints,
ShowPoints = cinemaUnits.ShowPoints
});
}
scenarioSchema.CinemaUnits.AddRange(CinemaUnitSchemas);
但是,我在这行代码中收到错误;
AttendantPoints = cinemaUnits.AttendantPoints
我收到的错误是:
“无法将类型 'System.Collections.Generic.List ' 隐式转换为 'System.Collections.Generic.List '。”
CinemaUnit 的类是:
public class CinemaUnit
{
public string Name { get; set; }
public List<AttendantPoint> AttendantPoints { get; set; }
public bool ShowPoints { get; set; }
}
CinemaUnitSchema 的类是:
public class CinemaUnitSchema
{
public string Name { get; set; }
public List<AttendantPoint> AttendantPoints { get; set; }
public bool ShowPoints { get; set; }
}
解决方案
在每次迭代中将相应的列表添加到新对象中。
谢谢,
【问题讨论】:
-
scenarioSchema.CinemaUnits.AddRange(CinemaUnitSchemas);- 您尝试将一种类型的列表添加到不同类型的列表中 -
我该如何解决?
-
两个列表将包含完全相同数量的数据,它实际上是列表的副本。
-
您不能在同一个集合中添加不同类型的对象。这是强类型语言 (c#) 的好处
-
我正在创建一个类的副本,并以不同的方式命名它。一定有办法的。看课吗?它们包含相同的属性。
标签: c#