日期:2014-05-17  浏览次数:20459 次

linq 中 g.first()如何跟g.count() 连用啊?
数据表products结构如下:

id name userid
001 兔子 23
002 小狗 23
005 驴 21
008 大象 23
009 老虎 24  
如图 这样的数据;
我想每个用户 只取第一条数据;但是要要现实 这个用户有几个商品;

想得到这样的结果:
id name userid count
001 兔子 23 3
005 驴 21 1
009 老虎 24 1
有什么办法吗??




------解决方案--------------------
var list = from dr in dt.AsEnumerable()
group dr by dr.Field<string>("userid") into g
select new { userid=g.Key,count=g.Count(),firstItem=g.First()}; 

------解决方案--------------------
var s = from temp in dc.Class1 group temp by temp.userid into g select new { id = g.First().id, name = g.First().name, userid = g.Key ,count = g.Count() };

------解决方案--------------------
这个是group by 效果的。

上网随便一搜就找到答案。

var q =
from p in db.Products
group p by p.CategoryID into g
select new {
g.Key,
Total = g.Count(p => p.UnitPrice)
};
------解决方案--------------------
C# code
var list = from dr in dt.AsEnumerable()
                       group dr by dr.Field<string>("userid") into g
                       select new { userid=g.Key,count=g.Count(),productlist=g.FirstOrDefault()};