返回顶部
首页 > 资讯 > 精选 >Linq延时执行怎么理解
  • 842
分享到

Linq延时执行怎么理解

2023-06-17 22:06:04 842人浏览 独家记忆
摘要

本篇内容主要讲解“Linq延时执行怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linq延时执行怎么理解”吧!Linq的大多数查询运算符的一个重要特性就是,他们并不是在构建的时候就立即执

本篇内容主要讲解“Linq延时执行怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linq延时执行怎么理解”吧!

Linq的大多数查询运算符的一个重要特性就是,他们并不是在构建的时候就立即执行,而是在枚举是执行,换句话说,当枚举变量调用MoveNext时执行。

在构建查询之后,另外插入到列表中的数字也会包含在结构中,因为直到foreach运行时此才回进行筛选或者是排序操作,称之为延时执行或延缓计算,所有标准查询运算符均为延时执行,但是有的运算符不支持延时执行的机制,而是立即执行,如Count 、ToAarry、toLookup等。

Linq延时执行还有一点不好的影响,如果查询的lambda表达式引用了局部变量,那么这些便来那个会受到外部便来那个语义的约束。

当在foreach循环中构建查询时,这就会成为一个陷阱,例如假定想要删除字符串中的所有元音字母。如下所示的虽然效率不高,但是能得到正确的结果:

IEnumberable<int> qurey ="Not what you might expect";  queryquery =query.Where(c=>c!='a');  queryquery =query.Where(c=>c!='e');  queryquery =query.Where(c=>c!='i');  queryquery =query.Where(c=>c!='o');  queryquery =query.Where(c=>c!='u');     foreach(char c in query)  Console.Write(c);   //Nt wht y mght xpct

上面的代码是可以得到正确的结果,那么现在如果用foreach循环重写这段代码能否的道正确的结果:

IEnumerable<char> query ="Not what you might expect";  foreach(cha vowel in "aeiou")  qwuer =query.Where(c=>c!=vowel);   foreach(char c in query)  Console.Write(c); //Not what yo might expect  //只删除了'u',这是因为编译器将foreach循环翻译成如下的代码:  IEnumerable<char> vowels="aeiou";  Iemuberator<char> rator=vowels.GetEnumerator();   char vowel;  while(rator.MoveNext())  {  vowel =rator.Current;  queryquery =query.Where(c=>c!=vowel);  }

因为vowel变量时循环外部声明的,同一个变量重复声明更新,所以每个lambda表达式获取的是同样的vowel.之后枚举查询时,所有的lambda表达式引用了这个变量的当前值,即'u'。为了解决这个问题,必须将循环变量赋值被另一再循环代码块内声明的变量:

IEnumberable<int> qurey ="Not what you might expect";  foreach( char vowel in "aeiou")  {  char temp =vowel;  queryquery =query.Where(c=>c!=temp);  }

到此,相信大家对“Linq延时执行怎么理解”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Linq延时执行怎么理解

本文链接: https://lsjlt.com/news/293475.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Linq延时执行怎么理解
    本篇内容主要讲解“Linq延时执行怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linq延时执行怎么理解”吧!Linq的大多数查询运算符的一个重要特性就是,他们并不是在构建的时候就立即执...
    99+
    2023-06-17
  • Unity如何延时执行
    这篇文章主要为大家展示了“Unity如何延时执行”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Unity如何延时执行”这篇文章吧。本文列举的有以下四种,如有错漏,欢迎补充指正✨UpdateInv...
    99+
    2023-06-20
  • C# Linq延迟查询的执行实例代码
    C# Linq延迟查询 在定义linq查询表达式时,查询是不会执行,查询会在迭代数据项时运行。它使用yield return 语句返回谓词为true的元素。 var names ...
    99+
    2024-04-02
  • Linq内部执行原理是怎么样的
    这篇文章主要介绍了Linq内部执行原理是怎么样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Linq内部执行原理LINQ(Language Integrated Query...
    99+
    2023-06-17
  • LINQ如何实现子查询和延迟执行编程
    这篇文章将为大家详细讲解有关LINQ如何实现子查询和延迟执行编程,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。LINQ子查询 LINQ子查询是一个包含了另外一个查询的Lambda表达式的查询. 以下的例子...
    99+
    2023-06-17
  • dos、bat批处理如何延时执行命令
    这篇文章给大家分享的是有关dos、bat批处理如何延时执行命令的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。第一种方法:ping 127.0.0.1 -n 5000>nul&n...
    99+
    2023-06-09
  • Bat脚本-timeout命令(延时执行)
    概述 做一个延时执行的批处理命令,选用timeout命令来实现,但是碰到一个情况是写完后直接双击运行时,timeout 命令运行不了,每次运行到timeout的时候,命令就会跳到.b...
    99+
    2022-12-26
    Bat timeout bat 延时执行
  • 【Android】之【延时执行的几种方法】
    在Android日常开发中我们经常会有延时执行某个操作的需求,例如我们启动应用的时候,开始呈现一个引导页面,过了两三秒后,自动跳转到主界面;又如为了控制时序,需要延时执行等等。 下面整理下实现延时执行...
    99+
    2023-08-31
    android
  • springboot执行延时任务之DelayQueue实例
    目录springboot执行延时任务之DelayQueueDelayQueue是什么?使用步骤日常开发延迟任务技术对比总结springboot执行延时任务之DelayQueue 提示...
    99+
    2023-02-14
    springboot执行延时任务 springboot DelayQueue springboot延时任务
  • 批处理bat延时执行命令的方法有哪些
    这篇文章主要介绍“批处理bat延时执行命令的方法有哪些”,在日常操作中,相信很多人在批处理bat延时执行命令的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”批处理bat延时执行命令的方法有哪些”的疑...
    99+
    2023-06-09
  • Unity延时执行的多种方法小结
    目录Update计时器Invoke协程DoTween最开始接触unity的时候,我做延时都是在update里做计时器。后来才发现,我屮艸芔茻,还有这么多种更方便延时执行的方式。现在我...
    99+
    2024-04-02
  • 怎么理解Oracle的并行执行
    这篇文章主要介绍“怎么理解Oracle的并行执行”,在日常操作中,相信很多人在怎么理解Oracle的并行执行问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么理解Oracle...
    99+
    2024-04-02
  • LINQ语法怎么理解
    这篇文章主要介绍“LINQ语法怎么理解”,在日常操作中,相信很多人在LINQ语法怎么理解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”LINQ语法怎么理解”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!程序...
    99+
    2023-06-17
  • 怎么理解mongodb执行计划
    本篇内容介绍了“怎么理解mongodb执行计划”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!====Mon...
    99+
    2024-04-02
  • shell 创建子进程及并行延时执行命令方法
    目录shell 创建子进程方法1. 什么是shell子进程2. shell什么情况下会产生子进程3.使用括号来创建子进程shell 创建子进程方法 1. 什么是shell子进程 子进程,是从父子进程的概念出发的,Unix...
    99+
    2023-01-12
    shell创建子进程 shell子进程创建
  • shell创建子进程及并行延时执行命令方法
    目录shell 创建子进程方法1. 什么是shell子进程2. shell什么情况下会产生子进程3.使用括号来创建子进程shell 创建子进程方法 1. 什么是shell子进程 子进...
    99+
    2023-01-12
    shell 创建子进程 shell 子进程创建
  • Golang函数的延迟执行机制解析
    Golang是一种使用广泛的编程语言,它在高并发场景下表现出色,其中一个重要的特性就是函数的延迟执行机制。本文将深入探讨Golang函数的延迟执行机制,包括延迟执行的原理、使用时的注意事项等。延迟执行的原理Golang中的延迟执行机制是通过...
    99+
    2023-05-16
    函数 Golang 延迟执行
  • oracle定时任务不执行怎么解决
    如果Oracle定时任务没有执行,可以按照以下步骤进行解决: 检查定时任务是否正确配置。确保定时任务的语法正确,包括使用正确的cr...
    99+
    2024-04-09
    oracle
  • bat延时执行命令的另一种实现方法
    这篇文章主要介绍“bat延时执行命令的另一种实现方法”,在日常操作中,相信很多人在bat延时执行命令的另一种实现方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”bat延时执行命令的另一种实现方法”的疑惑有所...
    99+
    2023-06-09
  • 批处理如何实现延迟执行命令
    这篇文章将为大家详细讲解有关批处理如何实现延迟执行命令,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。2003的工具包里有个sleep.exe2、结合vbs实现的代码代码如下:echo.wscript.sl...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作