news 2026/7/6 18:26:41

.NET开发中3秒判断该用 IEnumerable 还是 IQueryable

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
.NET开发中3秒判断该用 IEnumerable 还是 IQueryable

选择 IEnumerable 当:

1、数据已在内存中

// 数据来自内存集合

List<User> users = GetUsersFromMemory();

var result = users.Where(u => u.Age > 18); // 使用 IEnumerable

2、需要立即执行查询

var users = dbContext.Users.ToList() // 立即执行

.Where(u => u.Age > 18); // 在内存中过滤

3、使用LINQ to Objects功能

// 使用.NET方法而非SQL可翻译的方法

var result = users.Where(u => u.Name.Contains("John"))

.AsEnumerable() // 切换到内存操作

.Select(u => new { u.Name, Initial = u.Name[0] });

选择 IQueryable 当:

1、需要数据库端过滤

// 查询被转换为SQL并在数据库执行

var result = dbContext.Users

.Where(u => u.Age > 18) // 生成 SQL: WHERE Age > 18

.OrderBy(u => u.Name);

2、需要分页或聚合操作

// 只在数据库获取需要的记录

var pagedResult = dbContext.Users

.Where(u => u.IsActive)

.Skip(20).Take(10) // 生成分页SQL

.ToList();

3、构建动态查询

复制代码

IQueryable<User> query = dbContext.Users;

if (!string.IsNullOrEmpty(searchName))

query = query.Where(u => u.Name.Contains(searchName));

if (minAge.HasValue)

query = query.Where(u => u.Age >= minAge.Value);

var finalResult = query.ToList(); // 单一SQL查询

复制代码

性能提示💡错误用法:❌

// 这将加载整个表到内存!

var users = dbContext.Users.ToList()

.Where(u => u.Age > 18);

正确用法:✅

// 只在数据库查询需要的记录

var users = dbContext.Users

.Where(u => u.Age > 18)

.ToList();

总结

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 12:09:36

行业视角下的数据库监控演进:主动预防能力何以成为刚需

凌晨三点的告警电话刺耳地响起&#xff0c;屏幕上一片飘红的性能指标让DBA&#xff08;数据库管理员&#xff09;瞬间清醒&#xff0c;又一个不眠之夜在“救火”中开始了——这种场景曾是DBA工作的日常。深夜的“救火”场景&#xff0c;本质是传统被动响应运维模式的真实写照。…

作者头像 李华
网站建设 2026/7/6 12:43:52

​当年靠这个ASP.NET电子书城系统,我的毕业设计直接拿优!(附核心源码)​

谁懂啊!当年做毕业设计时,选了个 “电子书城系统”,没想到不仅完美解决了传统购书的痛点,还靠扎实的技术实现拿了优秀!今天把这份压箱底的开发笔记分享出来,包含技术选型、核心模块实现、踩坑实录,适合.NET 初学者练手,老程序员也能追忆当年的开发情怀~ 一、项目背景…

作者头像 李华
网站建设 2026/7/7 10:23:25

极坐标波束形成数据底跟踪算法详解

极坐标波束形成数据底跟踪算法详解 一、基本概念 1.1 底跟踪的定义 底跟踪&#xff08;Bottom Tracking&#xff09;是通过声学回波信号检测和跟踪海底位置的技术&#xff0c;主要用于&#xff1a; 测量船舶相对于海底的速度确定水深辅助水下导航定位补偿多普勒计程仪测量 …

作者头像 李华
网站建设 2026/7/6 11:00:48

【技术教程】TrustFlow 授权策略是怎么实现的?

打开链接即可点亮社区Star&#xff0c;照亮技术的前进之路。 Github 地址&#xff1a;https://github.com/secretflow/trustflow/ TrustFlow提供了一套简洁易懂的语法帮助用户对数据使用行为的授权进行描述。接下来我们会详细描述这套语法&#xff0c;并结合示例进行讲解。 …

作者头像 李华
网站建设 2026/7/7 10:23:21

丐版 OI 技巧 / 杂项部分总结 + 作者学习笔记

持久化区间修改区间查询线段树&#xff1a;SP11470 TTM - To the moon点击查看代码2. 有后效性的 dpCF24D Broken robot一般用高斯消元 求解。也可以多跑几遍朴素 dp 使误差降到可接受范围内。多跑几遍的代码3. P14402 [JOISC 2016] 危险的滑冰 / Dangerous Skating图论建模。思…

作者头像 李华