从List <t>获取具有特定属性的最大值的记录

Cic*_*ami 3 c# linq max

可能重复:
LINQ:如何对集合中所有对象的属性执行.Max()并返回具有最大值的对象

我有以下课程:

class Product
{
    public string ProductName { get; set; }
    public DateTime ActivationDate { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后我创建并填写一个 List<Product>,我想ProductNameProduct最新的ActivationDate.

Product.Where(m => m.ActivationDate == Max(m.ActivationDate)).Select(n => n.ProductName)

Product.Max(m => m.ActivationDate).Select(n => n.ProductName)
Run Code Online (Sandbox Code Playgroud)

但机器人方法不起作用.有人知道实现这项任务的方法吗?

V4V*_*tta 6

您可以OrderByDescendingList<Product>上ActivationDate域,然后取FirstOrDefault()

Product.OrderByDescending(p => p.ActivationDate).FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

对于更简单的版本,有一种扩展方法

MaxBy

Product.MaxBy(p => p.ActivationDate);
Run Code Online (Sandbox Code Playgroud)

  • 这是一个矫枉过正的解决方案. (3认同)