Linq/Lambda代码在vb中工作但不在c#中工作

JPu*_*vis 1 c# vb.net

以下适用于VB ..

Dim q = allValues.GroupBy(Function(u) u.R).Select(Function(grp) grp).OrderByDescending(Function(a) a.Count).ToList
Run Code Online (Sandbox Code Playgroud)

但不是在C#..

dynamic q = allValues.GroupBy(u => u.R).Select(grp => grp).OrderByDescending(a => a.Count).ToList;
Run Code Online (Sandbox Code Playgroud)

"allValues"是各种像素的颜色列表.我正在尝试将颜色R值分组并按计数降序排序以找到最常用的颜色.

我是C#和Lambda的菜鸟.这也是我在网站上的第一篇文章.谢谢你的任何邀请!

Jam*_*iec 5

a.Count 是一种方法,它需要括号 -

.OrderByDescending(a => a.Count())
Run Code Online (Sandbox Code Playgroud)

所以确实ToList()对这一问题.

还有一些小问题:

  • Select(grp => grp) 没有意义,你可以删除那一点.
  • 结果不需要dynamic- 你可以使用var.