C#将列表中的对象转换为另一个对象

是否可以将对象列表分配给另一个将其作为构造函数的对象列表?

例如。

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 */ } 

当如下所示的列表中时, PersonORM使用构造函数将Person转换为PersonORM

 List people = getPeople(); List peopleOrm = new List(people); // Is something like this possoble? 

由于List的构造函数不支持它,因此不可能使用您拥有的语法。

如果你可以使用linq(取决于你所针对的.Net版本),你可以这样做:

 List personOrm = people.Select(p => new PersonORM(p)).ToList(); 

这使用Select运算符从原始列表中的每个项目执行转换。

可以使用LINQ完成:

 List peopleOrm = new List(people.Select(p => new PersonORM(p)));