【发布时间】:2017-06-12 02:54:36
【问题描述】:
我对 LINQ 还很陌生,但我想我已经掌握了窍门。
我正在尝试对 select 语句进行分组,然后对其进行降序排列。仅仅查看其他问题,我已经走了很远,但是当我尝试附加 OrderByDescending() 函数时,我尝试添加的 lambda 表达式无法被智能感知识别。
var test = db.UserPokemons.Where(x => x.PkmnDataId == pokemon.Id && x.StepsToHatch == 0)
.GroupBy(n => n.User1.Country).OrderByDescending();
因此,例如,.OrderbyDescending(x => x.User1.Country) 不包含User1 的定义。
这与我的陈述顺序有关吗?我想这是因为我在OrderBy 之前调用了GroupBy,但我不知道如何解决它。
如何订购我的团体?
哦!差点忘了 - 我只想要前 3 个国家/地区,那么有没有简单的方法来限制它?
- 如何在同一个LINQ函数中使用
GroupBy和OrderByDescending - 如何只选择前/前 3 组
感谢您的帮助!
【问题讨论】:
-
您要订购组,还是订购组内的项目?
-
我想订购组
-
如果您想按国家/地区订购,请使用 .OrderbyDescending(x => x.Key).Take(3)
-
x.Key是我需要的——我不确定当 x 被分组时它是如何获取 x 值的。现在完美运行,谢谢!