将一个IEnumerable的属性分配给另一个



我有一个类Person:

public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
}

和一类电子邮件:

public class Email
{
public int Id { get; set; }
public string EmailAddress { get; set; }
}

我有两者的IEnumerables:

public IEnumerable<Person> Persons;
public IEnumerable<Email> Emails;

我想根据相等的Id将所有电子邮件分配给人员。

我在尝试类似的东西

foreach (var person in Persons.Where(p => p.Id.Equals(Emails.Select(x=>x.Id))))
{
person.Email = Emails.Select(e => e.EmailAddress);
}

但这是我有点挣扎的地方,我看到的工作版本使用的是2 foreach,我知道它不起作用。在Persons.Id == Emails.Id中,给每个人分配一封电子邮件的方法是什么?

foreach(var person in Persons)
{
var email = Emails.FirstOrDefault(email => email.Id == person.Id);
if(email != null)
person.Email = email.Email;
}

最新更新