none
str.ToCharArray().GroupBy(ch => ch).OrderBy(g => -g.Count()).First().Key; 的问题? ch是哪里来的 RRS feed

  • 问题

  •  static void Main(string[] args)
        {
          string str = "wssa";
          var c = str.ToCharArray().GroupBy(ch => ch).OrderBy(g => -g.Count()).First().Key;
          Console.WriteLine(c.ToString());
    
          Console.ReadKey();
        }
    
    GroupBy(ch=>ch)这里的最后面那个ch应该写面方法怎么写呀?怎么输入的值?
    2010年12月22日 7:59

答案

  • 最后一句话没看懂。。。

    GroupBy(ch => ch) 其中 ch => ch 是一个 Lambda 表达式,第一个 ch 是形式参数,第二个 ch 是返回值,它相当于:

    ch => { return ch; }

    由于 GroupBy 的上下文为 char[] (用了 ToCharArray() 方法转换,其实这个调用没有必要),因此 GroupBy 的 Lambda 表达式的类型是 Func<char, char>,也就是对该 string 中的每一个字符作 Group By,也就是统计一个 string 中每个字符的出现次数。


    Mark Zhou
    2010年12月22日 9:14
  • dear
    这是 Lambda 表达式你可参考以下连结学习

    Lambda 表达式(C# 编程指南)
    http://msdn.microsoft.com/zh-cn/library/bb397687.aspx

    匿名方法(C# 编程指南)
    http://msdn.microsoft.com/zh-cn/library/0yw3tz5k.aspx

    C#委托,事件和Lambda表達式
    http://bbs.ecstart.com/thread-39673-1-1.html

    C#3.0新体验(五)Lambda表达式
    http://blog.csdn.net/maotin/archive/2008/10/20/3110451.aspx
    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2010年12月24日 0:47

全部回复

  • 最后一句话没看懂。。。

    GroupBy(ch => ch) 其中 ch => ch 是一个 Lambda 表达式,第一个 ch 是形式参数,第二个 ch 是返回值,它相当于:

    ch => { return ch; }

    由于 GroupBy 的上下文为 char[] (用了 ToCharArray() 方法转换,其实这个调用没有必要),因此 GroupBy 的 Lambda 表达式的类型是 Func<char, char>,也就是对该 string 中的每一个字符作 Group By,也就是统计一个 string 中每个字符的出现次数。


    Mark Zhou
    2010年12月22日 9:14
  • dear
    这是 Lambda 表达式你可参考以下连结学习

    Lambda 表达式(C# 编程指南)
    http://msdn.microsoft.com/zh-cn/library/bb397687.aspx

    匿名方法(C# 编程指南)
    http://msdn.microsoft.com/zh-cn/library/0yw3tz5k.aspx

    C#委托,事件和Lambda表達式
    http://bbs.ecstart.com/thread-39673-1-1.html

    C#3.0新体验(五)Lambda表达式
    http://blog.csdn.net/maotin/archive/2008/10/20/3110451.aspx
    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    2010年12月24日 0:47