转换为lambda表达式

Reh*_*qvi 1 c# linq lambda select anonymous-types

你如何将这个linq表达式的选择部分专门翻译成lambda?

var query2 = from method in typeof(double).GetMethods() // integrated method c# reflection
             orderby method.Name
             group method by method.Name into groups
             select new { MethodName = groups.Key, NumberOfOverloads = groups.Count()};
Run Code Online (Sandbox Code Playgroud)

到目前为止我有这个:

 var methods = typeof(double).GetMethods();
 var query3 = methods.OrderBy(x => x.Name).GroupBy(y => y.Name);
Run Code Online (Sandbox Code Playgroud)

我尝试了这个选择,但我得到compilor错误.

 var query3 = methods.OrderBy(x => x.Name).GroupBy(y => y.Name)
 .Select<new { MethodName = groups.Key, NumberOfOverloads = groups.Count()}>();
Run Code Online (Sandbox Code Playgroud)

非常感谢帮助谢谢.

Sav*_*ave 7

这是确切的翻译.我不知道为什么你需要这个OrderBy,考虑到你没有使用的元素Select

var methods = typeof(double).GetMethods()
     .OrderBy(x=>x.Name)
     .GroupBy(x=>x.Name)
     .Select(x=> new { MethodName = x.Key, NumberOfOverloads = x.Count()});
Run Code Online (Sandbox Code Playgroud)

获得相同的结果

var methods = typeof(double).GetMethods()
 .GroupBy(x=>x.Name)
 .Select(x=> new { MethodName = x.Key, NumberOfOverloads = x.Count()});
Run Code Online (Sandbox Code Playgroud)

并且您节省了一些计算时间,因为您不必订购集合.