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

C# Linq/Lambda代码在vb中工作,但在c中不工作,c#,vb.net,C#,Vb.net,下面的工作是在VB中完成的 Dim q = allValues.GroupBy(Function(u) u.R).Select(Function(grp) grp).OrderByDescending(Function(a) a.Count).ToList 但不是在C dynamic q = allValues.GroupBy(u => u.R).Select(grp => grp).OrderByDescending(a => a.Count).ToList; allVa

下面的工作是在VB中完成的

Dim q = allValues.GroupBy(Function(u) u.R).Select(Function(grp) grp).OrderByDescending(Function(a) a.Count).ToList
但不是在C

dynamic q = allValues.GroupBy(u => u.R).Select(grp => grp).OrderByDescending(a => a.Count).ToList;
allValues是各种像素的颜色列表。我尝试将颜色R值分组,并按计数递减进行排序,以找到最常用的颜色

我是C和Lambda的不速之客。这也是我第一次在这个网站上发表文章。谢谢你的来信

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

.OrderByDescending(a => a.Count())
托利斯特也是如此

还有几个小问题:

Selectgrp=>grp是无意义的,您可以删除该位。 结果不需要是动态的-您可以使用var。 a、 Count是一个方法,它需要括号-

.OrderByDescending(a => a.Count())
托利斯特也是如此

还有几个小问题:

Selectgrp=>grp是无意义的,您可以删除该位。 结果不需要是动态的-您可以使用var。 正确的语法是

var q = allValues // probably you mean "var" instead of "dynamic"
   .GroupBy(u => u.R)
   .Select(grp => grp) // that's redundant, you can remove it
   .OrderByDescending(a => a.Count())
   .ToList();
在计数后和ToList后记录。表示您调用了该方法。

正确的语法是

var q = allValues // probably you mean "var" instead of "dynamic"
   .GroupBy(u => u.R)
   .Select(grp => grp) // that's redundant, you can remove it
   .OrderByDescending(a => a.Count())
   .ToList();

在计数后和ToList后记录。表示您调用了该方法。

在C中应该是。t请注意,您有一个输入错误。您不是试图调用ToList,而是试图访问一个不存在的属性ToList注意,通过使用dynamic而不是var,您阻止了编译器立即捕获错误。事实上,IntelliSense会捕捉到它,并警告您ToList和CountIn C都应该是。您不是试图调用ToList,而是试图访问一个不存在的属性ToList注意,通过使用dynamic而不是var,您阻止了编译器立即捕获错误。事实上,智识会抓住它并警告你,ToList和康普都可以认为动态是有问题的。如果是var,Intellisense和编译器就会捕获typos@PanagiotisKanavos:谢谢,肯定是VAR,我已经编辑了答案。你可以认为动态是有问题的。如果是var,Intellisense和编译器就会捕获typos@Panagiotis卡那沃斯:谢谢,肯定应该是var,我已经编辑了答案。