代码之家  ›  专栏  ›  技术社区  ›  Shawn Mclean

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

c#
  •  1
  • Shawn Mclean  · 技术社区  · 15 年前

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

    如。

    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?
    
    2 回复  |  直到 15 年前
        1
  •  4
  •   adrianbanks    15 年前

    使用作为 List<T> 不支持它。

    如果您可以使用linq(取决于您的目标.Net版本),则可以执行以下操作:

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

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

        2
  •  2
  •   alpha-mouse    15 年前

    可以使用LINQ完成:

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