【发布时间】:2011-11-09 06:52:29
【问题描述】:
这很简单,但我不知所措: 鉴于这种类型的数据集:
UserInfo(name, metric, day, other_metric)
还有这个样本数据集:
joe 1 01/01/2011 5
jane 0 01/02/2011 9
john 2 01/03/2011 0
jim 3 01/04/2011 1
jean 1 01/05/2011 3
jill 2 01/06/2011 5
jeb 0 01/07/2011 3
jenn 0 01/08/2011 7
我想检索一个按顺序(0,1,2,3..)列出指标的表格,其中包含计数发生的总次数。所以从这个集合中,你最终会得到:
0 3
1 2
2 2
3 1
我正在努力使用 LINQ 语法,但我被困在放置 groupby 和计数的位置... 有什么帮助吗?
POST 编辑:我永远无法让发布的答案正常工作,因为它们总是返回一条记录,其中包含不同计数的数量。但是,我能够将一个 LINQ to SQL 示例放在一起,该示例确实有效:
var pl = from r in info
orderby r.metric
group r by r.metric into grp
select new { key = grp.Key, cnt = grp.Count()};
此结果为我提供了一组有序的记录,其中包含“指标”以及与每个记录关联的用户数。总的来说,我显然对 LINQ 很陌生,而且在我未经训练的眼中,这种方法似乎与纯 LINQ 方法非常相似,但却给了我不同的答案。
【问题讨论】:
-
是的,我有,但吉米的解释对我帮助更大。然而,我始终无法让他的榜样发挥作用,但它确实将我引向了一个新的方向。
-
@Jimmy 使用 LINQ 表达式的函数语法而不是标准的 LINQ 查询语法,此外他决定展示这些函数的立即执行而不是延迟执行格式。对于一个会感到困惑的新人。不知道他为什么这么做。