C# LINQ顺序按日期降序排列的对象集合
我有一堆对象(产品),我想先按创建日期降序排列,然后只显示前10条记录。 创建日期(DateTime)的格式如下所示C# LINQ顺序按日期降序排列的对象集合,c#,linq,entity-framework,C#,Linq,Entity Framework,我有一堆对象(产品),我想先按创建日期降序排列,然后只显示前10条记录。 创建日期(DateTime)的格式如下所示 4/4/2007 12:00:00 AM 这就是我尝试过的 如何按日期降序排列前10名 var productLatestReleases = (from p in visualsProduct from pf in p.DomainObjectFields
4/4/2007 12:00:00 AM
这就是我尝试过的
如何按日期降序排列前10名
var productLatestReleases = (from p in visualsProduct
from pf in p.DomainObjectFields
select p).Distinct().OrderByDescending(d => d.DateCreated).Take(10);
由于您正在描述日期的格式,因此我假设
DateCreated
属性的数据类型是string
。如果是,您可以:
.OrderByDescending(d => Convert.ToDateTime(d.DateCreated)).Take(10)
另外,如果不指定要比较的等式,您的
Distinct()
将不会有太大影响。当前查询有什么问题?您面临的问题是什么…?该查询似乎是正确的。您得到了什么结果?为什么查询p.DomainObjectFields
?你不需要它。整个过程可以缩短为visualproduct.Distinct().OrderByDescending(p=>p.DateCreated)。Take(10)
您不能使用LINQ to实体指定自定义相等比较器,因为不支持Distinct(comparer)
。好的,我明白您的意思。我猜想,通过查看标记,可以隐式地使用Linq to实体。很抱歉。