C#将通用列表复制到具有较少列的对象

Rod*_*Rod 3 c#

public class Person
{
  public string FirstName {get; set;}
  public string LastName {get; set;}
  public string Email {get; set;}
}


public class PersonTarget
{
  public string FirstName {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

有没有一种简单的方法可以将Person数据复制到PersonTarget?

我正在使用foreach循环:

        List<Person> people = new List<Person>();
        people.Add(new Person() { FirstName = "John", LastName = "Smith", Email = "test@example.com" });

        List<PersonTarget> peopleCopy = new List<PersonTarget>();

        foreach (var person in people)
        {
            peopleCopy.Add(new PersonTarget() { FirstName = person.FirstName });
        }
Run Code Online (Sandbox Code Playgroud)

Hus*_*man 6

你可以使用linq:

 peopleCopy = people.Select(p => new PersonTarget() {FirstName = p.FirstName}).ToList();
Run Code Online (Sandbox Code Playgroud)