是否可以将对象列表分配给另一个将其作为构造函数的对象列表?
例如
public class PersonORM{
public PersonORM(Person p){ /* convert */ }
public int PersonId { get; set; }
/* Other properties here */
}
public class Person{
public int PersonId { get; set; }
/* Other properties here */
}
如果使用构造函数将Person
转换为PersonORM
,如果它们位于如下列表中:
List<Person> people = getPeople();
List<PersonORM> peopleOrm = new List<Person>(people); // Is something like this possoble?
答案 0 :(得分:4)
由于List<T>
的构造函数不支持它,因此无法使用您拥有的语法。
如果你可以使用linq(取决于你所针对的.Net版本),你可以这样做:
List<PersonORM> personOrm = people.Select(p => new PersonORM(p)).ToList();
这使用Select
运算符来执行原始列表中每个项目的转换。
答案 1 :(得分:2)
可以使用LINQ:
完成List<PersonORM> peopleOrm = new List<Person>(people.Select(p => new PersonORM(p)));