zoukankan      html  css  js  c++  java
  • LinQ In Action 学习第三章

    本章开始前先回顾一个小例子,复习一下第二章所讲内容

      var pc = Process.GetProcesses()
                    .Where(p => p.WorkingSet64 >= 20 * 1024 * 1024) // lamador expression
                    .OrderByDescending(p => p.WorkingSet64)// extension method
                    .Select(p => new { ID = p.Id, Name = p.ProcessName, Memory = p.WorkingSet64 });// Anymorous type and  object initiallizer
                Console.WriteLine(pc);
                Console.Read();

    开始第三章:

    第一个概念:了解 iterator 和return yeild 工作机制 和deferred query execution 延迟执行查询。

    通过一个例子可以看出来。

     static double Square(double n)
             {
                 Console.WriteLine("Computing Square(" + n + ")...");
                 return Math.Pow(n, 2);
             }

     int[] itegers = new int[] { 1, 3, 5 };
                
                var iv = itegers.Select(n => Square(n));
              
                foreach(var p in iv.ToList()){
                    Console.WriteLine( p);
                }
                Console.Read();

     static double Square(double n)
             {
                 Console.WriteLine("Computing Square(" + n + ")...");
                 return Math.Pow(n, 2);
             }

    int[] itegers = new int[] { 1, 3, 5 };
                
                var iv = itegers.Select(n => Square(n));
              
                foreach(var p in iv){
                    Console.WriteLine( p);
                }
                Console.Read();

    "Yeild" 机制非常重要使LINQ可以实现lazy execution。

    1. Lamador Expression

    2. Lamador Operator

    3. Lazy Executation iterator, return yeild

    4. Expression tree

    介绍了 Lamador Expression,Lamador Operator 以及他们俩之间的关系。  

    Lamador Operator will be compiled into Lamador Expression, 两者可以结合使用。例子就不写了很简单。

    表达式树不是很明白。 留下来有空在好好研究吧。

  • 相关阅读:
    mysql之流程控制函数
    JavaWeb项目部署到Linux服务器
    Node.js 的核心模块
    mysql之其他函数
    [导入]dotNet学习笔记-浅谈.Net的事件代理
    [导入]全国人民在为谁卖命?剩余价值输向发达国家的另一条管道优秀的上市公司
    [导入]dotNet学习笔记-浅谈.Net的事件代理
    [导入]dotNet学习笔记-浅谈.Net的事件代理
    [导入]创建一个没有窗口的程序
    [导入]设计模式Top10排行榜
  • 原文地址:https://www.cnblogs.com/recordlife/p/4217925.html
Copyright © 2011-2022 走看看