如何在linq查询中使用distinct [英] how to use distinct in linq query
本文介绍了如何在linq查询中使用distinct的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
列表与LT; logindetail> logLst = EJE.LoginDetails.Where(m => m.UserID == userid).OrderByDescending(m => m.LoginTime).Take(10)。ToList();
在上面的linq查询中我需要使用基于登录时间的distinct
是否可能?
List<logindetail> logLst=EJE.LoginDetails.Where(m=>m.UserID==userid).OrderByDescending(m=>m.LoginTime).Take(10).ToList();
in the above linq query i need to use the distinct based on logintime
is it possible?
推荐答案
如果我没错,你想根据LoginTime
获得10个不同的用户。因此,您必须按UserId
对数据进行分组,并获得LoginTime
的最大值。
If i'm not wrong you want to get 10 distinct users based onLoginTime
. So, you have to group data byUserId
and get the max ofLoginTime
.
DateTime today12AM = new DateTime(2015,10,27,0,0,0);
DateTime today12PM = today12AM.AddDays(1);
var logLst=EJE.LoginDetails
.Where(m=>m.LoginTime>=today12AM && m.LoginTime<today12pm)>
.GroupBy(m=> m.UserId)
.Select(g=>new
{
UserId = g.Key(),
LoginTime = g.Max(t=>t.LoginTime)
})
.OrderByDescending(a=>a.LoginTime)
.Take(10)
.ToList();
试试!
Try!
var logLst = EJE.LoginDetails.Where(m=>m.UserID==userid).OrderByDescending(m=>m.LoginTime).Distinct().Take(10);
Enumerable.Distinct< tsource>方法(IEnumerable< tsource>) [ ^ ]
-KR
Enumerable.Distinct<tsource> Method (IEnumerable<tsource>)[^]
-KR
这篇关于如何在linq查询中使用distinct的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文