高分请教linq的问题

qian6515 2013-10-20 08:40:52
数据表如下:
lid uid ldate
1 1 2013-10-11
2 1 2013-10-12
3 2 2013-10-11
4 2 2013-10-12
5 2 2013-10-13
我想在规定的时间内(如11号-13号)得到人登陆的天数,如下数据
uid Count
1 2
2 3


请教EF里面或linq里面如何分组统计?
...全文
96 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qian6515 2013-10-20
  • 打赏
  • 举报
回复
谢谢各位了,我自己研究出来了!!
Andy__Huang 2013-10-20
  • 打赏
  • 举报
回复
var datasource=list.GroupBy(g=>g.uid).Select(t=>{return new{uid=t.key,count=t.Count()};}).ToList();
q107770540 2013-10-20
  • 打赏
  • 举报
回复
引用 楼主 qian6515 的回复:
数据表如下: lid uid ldate 1 1 2013-10-11 2 1 2013-10-12 3 2 2013-10-11 4 2 2013-10-12 5 2 2013-10-13 我想在规定的时间内(如11号-13号)得到人登陆的天数,如下数据 uid Count 1 2 2 3 请教EF里面或linq里面如何分组统计?
var query=from t in db.TableName
          group t by t.uid into g
          orderby g.Key
          select new {uid=g.Key,Count=g.Count()};
全栈极简 2013-10-20
  • 打赏
  • 举报
回复
static void Main(string[] args)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("lid", typeof(int));
            dt.Columns.Add("uid", typeof(int));
            dt.Columns.Add("ldate", typeof(DateTime));

            dt.Rows.Add(1, 1, DateTime.Parse("2013-10-11"));
            dt.Rows.Add(2, 1, DateTime.Parse("2013-10-12"));
            dt.Rows.Add(3, 2, DateTime.Parse("2013-10-11"));
            dt.Rows.Add(4, 2, DateTime.Parse("2013-10-12"));
            dt.Rows.Add(5, 2, DateTime.Parse("2013-10-13"));

            var result = from p in dt.AsEnumerable()
                         where p.Field<DateTime>("ldate") >= DateTime.Parse("2013-10-11") && p.Field<DateTime>("ldate") <= DateTime.Parse("2013-10-13")
                         group p by p.Field<int>("uid") into g
                         select new { Key = g.Key, Count = g.Count() };

            result.ToList().ForEach(x => Console.WriteLine(string.Concat(x.Key, "|", x.Count)));
        }
threenewbee 2013-10-20
  • 打赏
  • 举报
回复
db.Table.GroupBy(x => x.uid).Select(x => new { uid = x.Key, Count = x.Count() });

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧