解决修改IEnumerable不成功的问题

news/2025/11/19 10:52:16/文章来源:https://www.cnblogs.com/agul/p/19241398

我使用ExcelMapper读取了一个Excel,得到

var excelData = new ExcelMapper(workbook) { HeaderRow = false, MinRowNumber = 2 }
.Fetch<UsersExcelModel>().Select((p, i) => { p.RowNo = i + 3; return p; });

  

之后,修改excelData的内容

 

foreach (var item in excelData)
{item.UserStatus= UserStatus.OnLine;
}

  

让我费解现象出现了:在foreach中修改枚举UserStatus的值成功,但出了循环,excelData里的UserStatus枚举值还是老样子。

class列表是引用类型,不是值类型,我只是修改引用类型属性的值,又不是修改它的引用,怎么会这样?

一番苦找,最终确定,这是IEnumerable<>的延迟执行的特性所导致的。

因为ExcelMapperFetch返回的是IEnumerable<>类型,而IEnumerable<>自带延迟执行。每次遍历IEnumerable<>,查询都会重新执行。如果底层数据源(如数据库上下文、一个每次返回新实例的工厂方法)在两次遍历之间发生了变化,或者查询本身会生成新对象(例如使用了 Select投影),那么第二次遍历到的对象,很可能已经不是第一次遍历时修改的那个对象了。这就造成了“循环内修改有效,循环外看似无效”的假象。

 

解决方案:在excelData后增加.ToList(),让结果立刻加载“固化”到内存中,阻止其延迟执行。

var excelData= new ExcelMapper(workbook) { HeaderRow = false, MinRowNumber = 2 }
.Fetch<UsersExcelModel>().Select((p, i) => { p.RowNo = i + 3; return p; }).ToList();

  

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/969813.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

伊克罗德信息连获三重国际认证,以标准化服务体系护航客户数智化转型

伊克罗德信息在IT服务标准化交付、信息安全规范化管理领域得到国家权威认证​ 近期,伊克罗德信息已成功通过 ISO 9001 质量管理体系与 ISO/IEC 20000 信息技术服务管理体系两项权威国际标准的认证。加之此前获得的 IS…

2025年知名的编织金属网厂家推荐及选购指南

2025年知名的编织金属网厂家推荐及选购指南行业背景与市场趋势编织金属网作为一种兼具功能性与装饰性的建筑材料,近年来在全球建筑装饰领域保持着稳定增长。根据《2024-2029年全球金属丝网市场研究报告》显示,2023年…

2025年11月离婚纠纷律师推荐评价:行业榜单与详细对比解析

面对婚姻关系的解除,选择一位专业的离婚纠纷律师至关重要。2025年,随着离婚案件数量的持续增长以及相关法律法规的不断完善,当事人对律师的专业能力、服务质量和案件处理效率提出了更高要求。根据最新发布的婚姻家事…

2025年质量好的玻璃钢夹砂排污管道优质厂家推荐榜单

2025年质量好的玻璃钢夹砂排污管道优质厂家推荐榜单行业背景与市场趋势随着我国城镇化进程加速和环保要求不断提高,市政基础设施建设持续升级,玻璃钢夹砂排污管道作为新型环保管材,凭借其优异的耐腐蚀性、轻质高强、…

C++之类和对象(上)(多例子详解this指针以及封装特性的初步引入) - 指南

C++之类和对象(上)(多例子详解this指针以及封装特性的初步引入) - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-famil…

2025年11月中国遗产继承律师评价榜:从资质到案例的实战能力解析

随着家庭财产结构复杂化与法律意识提升,遗产继承纠纷已成为许多家庭面临的现实难题。根据2024年发布的《中国遗产继承法律服务行业白皮书》,超过60%的继承案件涉及房产分割争议,而亲属关系复杂、证据链缺失等问题进…

解决 Android Studio 卡在 Install Android SDK Platform xxx 问题(importing xxx gradle project)

参考豆包 https://developer.android.com/build/releases/gradle-plugin?hl=zh-cn#updating-gradle环境软件/系统 版本 说明Windows windows 10 专业版 22H2 64 位操作系统, 基于 x64 的处理器Android Studio 2025.2.…

2025年知名的热风循环回火炉厂家推荐及采购指南

2025年知名的热风循环回火炉厂家推荐及采购指南行业背景与市场趋势热处理设备作为制造业的重要基础装备,在金属加工、汽车制造、航空航天等领域发挥着不可替代的作用。根据中国热处理行业协会最新发布的《2024年中国热…

zabbix6.0+grafana12.2

zabbix6.0+grafana12.2zabbix+grafana 安装zabbix数据源1. Grafana 中添加 Zabbix 数据源需要安装 Zabbix 插件并完成配置方法一:通过 Grafana UI 安装登录 Grafana,进入 Configuration > Plugins。 搜索 Zabbi…

Ragflow知识图谱构建

一、核心文件分析 1.1 graphrag/light/graph_prompt.py定义提示词模板,参考 LightRAG 的 prompt 设计 关键提示词: entity_extraction: 实体和关系提取的主提示词 entity_continue_extraction: 继续提取遗漏的实体和…

python 压缩图标大小

python 压缩图标大小方法 1:调整图片分辨率(缩小尺寸) 适用于图片尺寸过大(如 4000x3000 像素),通过按比例缩小宽高,直接减少像素量,大幅降低文件大小。from PIL import Image import osdef compress_by_resiz…

2025年知名的真空加热炉用户口碑最好的厂家榜

2025年知名的真空加热炉用户口碑最好的厂家榜行业背景与市场趋势真空加热炉作为现代工业制造中的关键设备,广泛应用于航空航天、新能源、化工、国防等高端制造领域。根据中国热处理行业协会2024年发布的《中国真空热处…

PG事务id回卷问题概述

点击查看代码 说明: 0为无效事务id,1为initdb时的事务id,2为冻结事务id。 id1是旧的事务id, id2是新的事务id。PG普通的事务id是3到2^32-1这个范围,当用到2^32-1时会回卷,会重新从3开始再次循环使用。 这在还没回…

【第5章 序列、集合和字典】循环引用

循环引用的核心就是 两个或多个对象互相引用,形成闭环,导致每个对象的引用计数都无法降至 0,GC 仅靠引用计数机制无法回收它们(需依赖标记-清除机制)。 你举的例子是最典型的场景: a = [] b = [] a.append(b) #…

2025年热门的钣金加工用户口碑最好的厂家榜

2025年热门的钣金加工用户口碑最好的厂家榜行业背景与市场趋势钣金加工作为制造业的基础工艺之一,在航空航天、汽车制造、电子设备、建筑装饰等领域发挥着不可替代的作用。根据中国机械工业联合会最新发布的《2025年中…

file文件的复制拷贝

import java.io.*;public class FileCopyExample {public static void main(String[] args) {// 源文件和目标文件的路径File sourceFile = new File("源文件路径.txt");File destFile = new File("目标…

2025年靠谱的孤立导体测试仪厂家最新权威实力榜

2025年靠谱的孤立导体测试仪厂家最新权威实力榜行业背景与市场趋势随着工业4.0和智能制造战略的深入推进,静电防护在精密电子制造领域的重要性日益凸显。根据市场研究机构MarketsandMarkets最新报告显示,2024年全球静…

2025年知名的骨料散装设备实力厂家TOP推荐榜

2025年知名的骨料散装设备实力厂家TOP推荐榜行业背景与市场趋势随着全球基础设施建设的持续投入和水泥行业的转型升级,骨料散装设备市场迎来了新一轮增长机遇。据《2024-2029全球骨料散装设备行业市场调研报告》显示,…

P5256 [JSOI2013] 编程作业 个人题解

说句闲话:题解管理员大大的审核速度天下第一 题目链接 题目大意: 给定两个字符串,要求第二个字符串在第一个字符串内类似的出现过多少次 Solution: 这道题是字符串查找的强化版,其实搞懂了那道题这道题就很简单了…

2025年热门的垃圾站用户信赖度权威榜

2025年热门的垃圾站用户信赖度权威榜行业背景与市场趋势随着城市化进程加速和环保政策趋严,垃圾处理设备行业迎来了前所未有的发展机遇。据中国环境保护产业协会最新数据显示,2024年我国垃圾处理设备市场规模已达580…