如何在linq查询中使用distinct [英] how to use distinct in linq query

查看:116
本文介绍了如何在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 on LoginTime. So, you have to group data by UserId and get the max of LoginTime.

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆