【发布时间】:2013-10-26 08:21:04
【问题描述】:
我写了一个 LINQ 查询,它的结果类似于:
var res = from a in tbl
group a by {a.StateCode,a.CityCode} into grp
//where grp.Count() == 1
select ...
StateCode CityCode ......
------------------------------------------
01 001 ......
01 002 ......
02 001 ......
03 001 ......
03 002 ......
03 003 ......
确实我只想得到02 001 记录,因为它在最终结果中有一个结果行。如果我添加注释代码它返回的记录数对应于每个组而不是自己组的计数。我知道我可以做到这一点有两个group by,但有没有更好的方法来获取结果中包含(例如)一行的行?
【问题讨论】:
-
您不是想要
02 001,因为02在StateCode中只出现一次吗?如果是这样,您只需要group by StateCode,并从 1 个元素的组中仅选择 1 个,因为可能有更多的 1 个元素组,在您的示例中,它只是02。 -
是的,不止
02。问题是我想获得02和001状态02。使用 group by 我可以得到其中一个并计算其他的。
标签: c# sql-server linq c#-4.0 linq-to-entities