zoukankan      html  css  js  c++  java
  • 理解Linq查询

    using System;
    using System.Linq;
    static class Program
    {
        static double Square(double n)
        {
            Console.WriteLine("Computing Square(" + n + ")...");
            return Math.Pow(n, 2);
        }
    
        public static void Main()
        {
            int[] numbers = { 1, 2, 3 };
            var query =
              from n in numbers
              select Square(n); // query只是一个语句,下面的foreach才执行内容
            foreach (var n in query)
                Console.WriteLine(n); // 逐个执行Square(n);方法
    
            for (int i = 0; i < numbers.Length; i++)
                numbers[i] = numbers[i] + 10;
            Console.WriteLine("- Collection updated -");
            foreach (var n in query)
                Console.WriteLine(n);
    
            Console.ReadKey();
        }
    }
    

    执行结果

    Computing Square(1)...
    1
    Computing Square(2)...
    4
    Computing Square(3)...
    9
    - Collection updated -
    Computing Square(11)...
    121
    Computing Square(12)...
    144
    Computing Square(13)...
    169
    
    

    同样的query,下面的却变了。query只是一个静态的存储语句。
    当foreach的时候,才逐个执行查询结果。

    再看小例子

    using System;
    using System.Diagnostics;
    using System.Linq;
    static class Program
    {
        public static void Main()
        {
            var processes =
              Process.GetProcesses()
                .Where(process => process.WorkingSet64 > 20 * 1024 * 1024)
                .OrderByDescending(process => process.WorkingSet64)
                .Select(process => new {
                    process.Id,
                    Name = process.ProcessName
                });
    
            foreach (var item in processes)
                Console.WriteLine(item.Name);
    
            Console.ReadKey();
        }
    }
    

    通过图解,能够更加清晰它的流程。

  • 相关阅读:
    我拒绝接受的几个最佳编程实践方法
    女人千万别写代码
    Visual Studio原生开发的10个调试技巧(二)
    20个很有用的PHP类库
    8个开发必备的PHP功能
    青少年如何使用 Python 开始游戏开发
    rmdir 删除空目录
    rm 删除文件或目录
    mv 移动或重命名文件
    cp 复制文件或目录
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/7019392.html
Copyright © 2011-2022 走看看