2010-11-27 3 views
1

Можно ли назначить список объектов другому списку объектов, который принимает его как конструктор?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 */ 
} 

Как конвертировать Person в PersonORM с помощью конструктора, когда они находятся в списке, как это:

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

ответ

4

Это не это можно сделать с синтаксисом, который у вас есть, поскольку конструктор List<T> не поддерживает его.

Если вы можете использовать LINQ (в зависимости от того, какая версия .Net вы ориентируетесь), вы можете сделать это:

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

Это использует оператор Select выполнить преобразование из каждого пункта в первоначальном списке ,

2

Это может быть сделано с помощью LINQ:

List<PersonORM> peopleOrm = new List<Person>(people.Select(p => new PersonORM(p))); 
Смежные вопросы