我有一个用户对象,其中包含一组电子邮件地址。我想返回最后注册的地址。为此,我创建了一个DataTable,运行Select并按日期排序,但是否有其他方法可以直接使用该集合实现此目的?
基本上我想要的是[0]位置的地址是最后注册的。我可以使用ICollection实现这一点,还是应该使用其他东西?
用户:
public ICollection<EmailAddress> EmailAddresses { get; set; } = new HashSet<EmailAddress>();
电子邮件地址:
public DateTime DateCreated { get; set; }
public int UserId { get; set; }
public string Address { get; set; }
public DateTime DateLastInvoked { get; set; } = DateTime.Now;
public int LastInvokedByClientId { get; set; }
解决方案:
EmailAddress result = this.EmailAddresses.Where(adr => adr.Active.Equals(true)).OrderByDescending(dt => dt.DateCreated).First();
List<T>
实现了IEnumerable
接口,因此您可以在其上使用OrderByDescending
扩展方法。您只需要在顶部添加using System.Linq
即可。 - John Wu