zoukankan      html  css  js  c++  java
  • LINQ 推迟查询的执行

    LINQ 在运行期间定义查询表达式时、查询就不会运行。查询会在迭代数据项是运行,例如:

    static void Main(string[] args)
            {
                List<string> list = new List<string>();
                for (int i = 0; i < 9; i++)
                {
                    list.Add(i.ToString());
                }
                var ls = from item in list where item.StartsWith("1") select item;
                Console.WriteLine("第一次输出:");
                foreach (var item in ls)
                {
                    Console.WriteLine(item);
                }
                Console.WriteLine();
                for (int i = 0; i < 10; i++)
                {
                    list.Add(i.ToString());
                }
                Console.WriteLine("第二次输出:");
    
                foreach (var item in ls)
                {
                    Console.WriteLine(item);
                }
    
                Console.Read();
            }

    输出:

    同时还必须注意,每次在迭代中使用查询时,都会调用扩展方法。在大多数情况下,这是非常有效的,
    因为我们可以检测出源数据中的变化。但是在一些情况下,这是不可行的。调用扩展方法ToArray(),ToList()等
    可以改变这个操作

     static void Main(string[] args)
            {
                List<string> list = new List<string>();
                for (int i = 0; i < 9; i++)
                {
                    list.Add(i.ToString());
                }
                var ls = (from item in list where item.StartsWith("1") select item).ToList();
                Console.WriteLine("第一次输出:");
                foreach (var item in ls)
                {
                    Console.WriteLine(item);
                }
                Console.WriteLine();
                for (int i = 0; i < 10; i++)
                {
                    list.Add(i.ToString());
                }
                Console.WriteLine("第二次输出:");
    
                foreach (var item in ls)
                {
                    Console.WriteLine(item);
                }
    
                Console.Read();
            }

  • 相关阅读:
    Windows:生成环境Word,PPT,EXCEL com+组件配置
    Win10 计算机管理 打不开应急办法
    Js:弹窗剧中
    Asp.net跨域配置
    Centos6系列安装nginx
    Win_oracle_exp/expdp备份
    MSSQL:查看某个账号使用得数据库
    MSSQL:查看作业情况
    MSSQL:账号无法删除方案
    MSSQL:删除系统作业计划
  • 原文地址:https://www.cnblogs.com/weicanpeng/p/8074524.html
Copyright © 2011-2022 走看看