像pp = pp.OrderBy(p => p.X).ToList()这样的扩展方法哪里有详细的用法讲解尤其是上述OrderBy排序函数的具体用法与其原型如何对应。一个完整例子如下:            List<Point> pp = new List<Point>();
            pp.Add(new Point(2, 5));
            pp.Add(new Point(3, 6));
            pp.Add(new Point(1, 7));
            pp = pp.OrderBy(p => p.X).ToList();

解决方案 »

  1.   

    你可以看看MSDN 的 LINQSAMPLES:http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx
      

  2.   

    http://msdn.microsoft.com/zh-cn/library/bb397687.aspxlambda表达式
      

  3.   


    尤其是p => p.X,这是死规定吗,怎么解释,是否还可以写成其它的形式,包括自己想象的形式
      

  4.   

    了解 Action , Func 这样的delegate, 再学习 Lambda
      

  5.   

    C# codevar t = listTask.Where(m => m.ID == task.ParentID).FirstOrDefault();
    等价于C# codevar t = listTask.Where(m => { return m.ID == task.ParentID }).FirstOrDefault();
    等价于C# codeTask t = listTask.Where(delegate(Task t) { return m.ID == task.ParentID }).FirstOrDefault();
    等价于C# codeTask t = listTask.Where(new Func<Task, bool>(wheremethod)).FirstOrDefault();
    ...
    bool wheremethod(Task m)
    {
        return m.ID == task.ParentID;
    }
    或者等价C# codeTask t = listTask.Where(new Func<Task, bool>(wheremethod)).FirstOrDefault();
    ...
    bool wheremethod(Task m)
    {
        if (m.ID == task.ParentID) return true; else return false;
    }
    这也就解释了为什么C# codem => m.ID == task.ParentID
    与C# coden => n.ID == task.ParentID
    是一样的  
    因为C# codebool wheremethod(Task m)
    {
        if (m.ID == task.ParentID) 
            return true; 
        else
            return false;
    }
    也可以写成C# codebool wheremethod(Task n)
    {
        if (n.ID == task.ParentID) 
            return true; 
        else 
            return false;
    }
      

  6.   

    http://developer.51cto.com/art/200909/151149.htm
    个人认为还是看一下委托,
      

  7.   

    p => p.X 的意思如何理解,p是什么
      

  8.   

    Lambda 表达式=>后面表示语句