LINQ语句问题

csdn_风中雪狼 2013-09-25 10:28:44
有一datatable
Name(姓名) status(状态)
A 正常
A 违规
A 正常
A 违规
A 违规
A 正常
B 正常
B 违规
B 违规
B 违规
B 违规
B 违规
C 正常
C 违规

现要统计得以下结果
Name 总次数 违规次数 正常次数
A 6 3 3
B 6 5 1
C 2 1 1

现在通过linq 我只能分别返回每个人 总的次数,总违规次数 总正常次数 现想向求一条 linq 就可以把这三项数据都返回

...全文
203 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fox000002 2013-09-25
  • 打赏
  • 举报
回复
试着写了一下
		var stateinfo = from t in table.AsEnumerable()
                    group t by t.Field<string>("Name") into r
                    select new
                        {
                            name = r.Key.ToString(),
                            count = r.Count(),
							illegal_count = r.Count(x => x.Field<string>("Status") == "违规")
                        };
						
		Console.WriteLine("Name     总次数    违规次数  正常次数");
		foreach (var result in stateinfo.OrderByDescending(g => g.illegal_count))
		{
			Console.WriteLine("{0,-9} {1,-9} {2,-9} {3,-9}", result.name, result.count, 
				result.illegal_count, result.count-result.illegal_count);
		}
  • 打赏
  • 举报
回复
  var list = dt.AsEnumerable().GroupBy(t => t.Field<string>("Name")).Select(t => new
            {
                Name=t.Key,
                Sum=t.Count(),
                Sum_WeiGui = t.Count(tt => tt.Field<string>("status") == "违规"),
                Sum_ZhengChang = t.Count(tt => tt.Field<string>("status") == "正常")
            }).ToList();
csdn_风中雪狼 2013-09-25
  • 打赏
  • 举报
回复
都休国庆节去了?
雨雪纷纷 2013-09-25
  • 打赏
  • 举报
回复
我是里帮顶顺带学习的。
csdn_风中雪狼 2013-09-25
  • 打赏
  • 举报
回复
没人,都下班了?
csdn_风中雪狼 2013-09-25
  • 打赏
  • 举报
回复

var stateinfor = from t in dt.AsEnumerable()
                    where t.Field<string>("status") == "违规"
                    group t by t.Field<string>("name") into r
                    orderby r.Count() descending 
                    select new
                        {
                            name= r.Key.ToString(),
                            count=r.Count()
                        };
以上 linq 是统计违规的,其它两个 linq 就不写了,现在想通过一条linq 就把这三项值全部返回
jiaoshiyao 2013-09-25
  • 打赏
  • 举报
回复
呵呵- -不会绑定留名
我的波塞冬 2013-09-25
  • 打赏
  • 举报
回复
学到新东西了。
csdn_风中雪狼 2013-09-25
  • 打赏
  • 举报
回复
谢谢楼上两位,自己一下SB了

110,499

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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