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, 两者可以结合使用。例子就不写了很简单。

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

  • 相关阅读:
    Jetpack MVVM 高频提问和解答
    Android-Jetpack架构组件-—-Navigation#
    Jetpack明星组件 —ViewModel #
    Android开发把 LiveData 用于事件传递那些坑#
    Android官方架构组件Lifecycle#
    Android架构组件JetPack之Lifecycle#
    Android架构组件JetPack之LiveData的工作原理#
    DataBinding从入门到通透#
    SpringBoot 分包方式多数据源
    SpringBoot与数据访问
  • 原文地址:https://www.cnblogs.com/recordlife/p/4217925.html
Copyright © 2011-2022 走看看