本帖最后由 Chinajiyong 于 2012-04-12 15:49:40 编辑

解决方案 »

  1.   

    感觉还是帮助中的用词合理一些
    创建一个新的范围变量sum ,后面可以对sum 进行操作
      

  2.   

    在查询表达式中,存储子表达式的结果有时很有用,这样可以在随后的子句中使用。 可以使用 let 关键字完成这一工作,该关键字可以创建一个新的范围变量,并且用您提供的表达式的结果初始化该变量。 一旦用值初始化了该范围变量,它就不能用于存储其他值。 但如果该范围变量存储的是可查询的类型,则可以对其进行查询。谢谢版主,貌似是要跟帖切一点
      

  3.   

    let不就是LINQ中的临时变量吗?为了方便重利用中间结果,提高效率而存在的一个关键字。
      

  4.   

    其实let和F#里面的let是一个意思,而Linq的那种函数式写法又和F#完全一样,喜欢函数式编程的人,完全可以去学习F#,这样反过来看Linq,会发现这只不过是F#的冰山一角啊。
      

  5.   

    谢谢,let引导的变量是不是下面都可以使用这个结果呢?有没有作用范围?F#我不知道,Jquery充分体现了链式编程的强大之处
      

  6.   

    Linq里面的let作用范围只有当前函数本身,封号结束,封号后面的C#代码是不能使用的。
      

  7.   


                            var vardt = from p in dt.AsEnumerable()
                            group p by p.ItemArray[0] into g
                            let sum = g.Sum(x => int.Parse(x.ItemArray[1].ToString()))
                            select new
                            {
                                批号 = g.Key,
                                Sum = sum
                            };这里的sum 下面都可以用吧
      

  8.   

    本帖最后由 caozhy 于 2012-04-12 22:29:41 编辑
      

  9.   

    本帖最后由 caozhy 于 2012-04-12 22:35:52 编辑
      

  10.   

    var var1 = list.GroupBy(n => n.ID).Select(n => new { ID = n.Key, Count = n.Sum(m => m.Count) });
      

  11.   

    这个从它的实现原理中也很好理解。匿名对象的属性是只读的。
    var x = new { Name = "x" };
    x.Name = "y"; // error
      

  12.   

    - -LINQ强大的地方在
    LINQ TO OBJECT
    而这个
    LINQ TO SQL属于LINQ失败的一个地方- -至少我的感觉如此。比如caozhy的例子,如果用在XML上,我想LZ就会明白,LINQ有多好用了。