常见的 Linq / 标准查询操作符错误/错误步骤?

2023-12-10

对于没有函数式编程背景的程序员来说,有什么错误是需要避免的吗?


人们容易犯的最大错误是误解 LINQ 查询的惰性和评估规则:

查询是惰性的:在您迭代它们之前它们不会被执行:

// This does nothing! No query executed!
var matches = results.Where(i => i.Foo == 42);

// Iterating them will actually do the query.
foreach (var match in matches) { ... }

此外,结果不会被缓存。每次迭代它们时都会计算它们:

var matches = results.Where(i => i.ExpensiveOperation() == true);

// This will perform ExpensiveOperation on each element.
foreach (var match in matches) { ... }

// This will perform ExpensiveOperation on each element again!
foreach (var match in matches) { ... }

底线:知道查询何时执行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

常见的 Linq / 标准查询操作符错误/错误步骤? 的相关文章

  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 为什么 isnormal() 说一个值是正常的,而实际上不是?

    include
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • jmvfw.dll:无法在 AMD 64 位平台上加载 IA 32 位 .dll

    系统 赢7 64位 JMF 通过启动 JMstudio 在我的系统上工作 它找到我的驱动程序并启动我的麦克风和网络摄像头 但是当我运行 Netbeans 代码时它不起作用 我已按照此网站上的以下步骤在 Win 7 64 位上安装 JMF 但
  • 交叉编译器与 JVM

    我想知道 JVM 的用途 如果创建 JVM 是为了允许平台无关的可执行代码 那么能够生成平台无关的可执行代码的交叉编译器就不能取代 JVM 吗 有关交叉编译器的信息检索自 http en wikipedia org wiki Cross c
  • fwrite(): SSL 操作失败,代码为 1。OpenSSL 错误消息:\n错误:1409F07F:SSL 例程:SSL3_WRITE_PENDING:PHP 中的错误写入重试

    我在 stackoverflow 上遇到了同样的问题 并尝试了所有答案 但没有帮助 我不明白错误是什么 这是我正在使用的函数 function sendRegistryNotification message deviceToken dev
  • 如何在 Discord.js 中按名称查找表情符号

    所以过去几天我非常沮丧 因为我无法在网上找到一个资源来正确记录在用 javascript 编写不和谐机器人时如何找到表情符号 我一直在参考本指南 其中有关表情符号的文档似乎要么是错误的 要么是过时的 https anidiots guide
  • Java JTextArea 中选择文本会触发哪个事件?

    我想监视进入 JTextArea 的文本选择 我不知道选择文本会触发什么事件 我只想在从 JTextArea 中选择某些文本后立即启用某些菜单项 例如将选项复制和剪切到菜单中 我应该监控什么 我不知道文本组件有任何 选择侦听器 尽管它们可能
  • 将选择元素绑定到 Angular 中的对象

    我想将一个选择元素绑定到一个对象列表 这很简单 Component selector myApp template h1 My Application h1
  • C++ extern 模板实例化和 typedef (gcc)

    我正在尝试在外部实例化模板 但是我想在实例化子句中使用 typedef 我认为这个例子说了一千多字 typedef myTemplate base
  • 可以混合使用 % 和 px 来对齐表格吗?

    我试图将不同的表与不同数量的列对齐 以便前两列对齐 其余列独立对齐 但使用 非常困难 并且在调整窗口大小时会丢失对齐 这就是为什么我试图在 td 上将混合与 和 px 对齐 例如 table tr td width 100px td td
  • Java中如何进行URL解码?

    在Java中 我想将其转换为 https 3A 2F 2Fmywebsite 2Fdocs 2Fenglish 2Fsite 2Fmybook do 3Frequest type To this https mywebsite docs e
  • 通过javascript通过ajax请求获取页面完整的html源代码

    javascript 代码将通过 google chrome 中的网址栏从 www example com 启动 因此我无法使用 jquery 我的目标是当我在 www example com 中启动代码时 将 www example co
  • 个人版本控制系统推荐[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 供个人使用 任何人都可以推
  • 在 iPhone 上传输音频时是否可以减少背景噪音?

    我们用了一些WebRTC libraries并在测试应用程序中实现它们iPhone 测试应用程序允许使用此应用程序在两部手机之间进行语音通话 类似于 Skype 该应用程序会产生大量背景噪音 比 Skype 或 Line 等其他手机应用程序
  • 从 vb.net 中的命令行获取参数

    是否可以从返回参数processPath在这个例子中 抱歉 这可能更有意义 Dim processName As String Dim processPath As String If processName cmd Then Dim ar
  • IBM MQ 会话断开连接

    我正在创建一个像这样的 MQ 侦听器 它工作正常 但几分钟或几小时后就会因此异常而断开连接 我不控制服务器 这是通过专用电路而不是互联网进行的 我怀疑是网络问题其他服务在同一线路上运行没有问题 MQQueueConnectionFactor
  • CSS:显示:内联块和定位:绝对

    请考虑以下代码
  • 使用C#在远程计算机上执行powershell脚本

    我使用 Microsoft Bot Framework 创建了一个 Bot 应用程序 并希望实现以下目标 无需任何身份验证即可在远程计算机上执行 Powershell 脚本 powershell 脚本将托管在 Azure 或数据库 可能是任
  • 将 CamelCase 转换为 Snake_Case

    需要以下查询的结果 select regexp replace StackOverflow something something as stack overflow 以下正则表达式在每个大写字母前面添加下划线 regexp replace
  • 在seaborn中绘制两列dataFrame

    我正在尝试在seaborn中创建一个条形图 显示数据框中每行 因子 的两个变量 权重 方差 的值 我的数据如下 Factor Weight Variance Growth 10 0 15 Value 20 0 35 这是我的代码 fig p
  • UICollectionView 的可重用性问题

    我曾与UITableView但我从来没有用过UICollectionView在我的应用程序中 所以我想创建UICollectionView以编程方式 以下是我的代码 UICollectionViewFlowLayout layout UIC
  • 常见的 Linq / 标准查询操作符错误/错误步骤?

    对于没有函数式编程背景的程序员来说 有什么错误是需要避免的吗 人们容易犯的最大错误是误解 LINQ 查询的惰性和评估规则 查询是惰性的 在您迭代它们之前它们不会被执行 This does nothing No query executed