登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
.NET开发中3秒判断该用 IEnumerable 还是 IQueryable ...
.NET开发中3秒判断该用 IEnumerable 还是 IQueryable
[ 复制链接 ]
靳谷雪
2025-10-6 12:25:29
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
在.NET开发中,IEnumerable和IQueryable是处理数据集合时最常用的两个接口。很多开发者对它们的选择感到困惑,但其实只需要掌握几个关键点就能快速做出正确决策。
核心区别:执行位置
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查询
复制代码
性能提示
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
NET
开发
3秒
判断
该用
相关帖子
FFmpeg开发笔记(九十三)国产的Android开源视频编辑器EpMedia
FFmpeg开发笔记(九十四)基于Kotlin的国产开源推拉流框架anyRTC
.NET周刊【11月第3期 2025-11-16】
.NET 10 网络堆栈深度架构解析:HTTP/3、性能优化与后量子加密的融合演进
.NET周刊【11月第4期 2025-11-23】
.Net-Avalonia学习笔记(目录)
.NET周刊【11月第5期 2025-11-30】
.NET周刊【11月第5期 2025-11-30】
Aspire 13:从.NET 编排工具到真正的多语言云原生应用平台
Apipost分支功能:为API开发打造专属的成本控制与协作流程
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
FFmpeg开发笔记(九十三)国产的Android开源视频编辑器EpMedia
0
205
姜删懔
2025-12-14
业界
FFmpeg开发笔记(九十四)基于Kotlin的国产开源推拉流框架anyRTC
1
680
晾棋砷
2025-12-14
业界
.NET周刊【11月第3期 2025-11-16】
1
444
簧横
2025-12-14
业界
.NET 10 网络堆栈深度架构解析:HTTP/3、性能优化与后量子加密的融合演进
0
947
段干叶农
2025-12-14
业界
.NET周刊【11月第4期 2025-11-23】
0
147
浅皮懔
2025-12-15
业界
.Net-Avalonia学习笔记(目录)
0
192
恙髡
2025-12-16
业界
.NET周刊【11月第5期 2025-11-30】
0
361
背竽
2025-12-16
业界
.NET周刊【11月第5期 2025-11-30】
0
990
闻成
2025-12-16
业界
Aspire 13:从.NET 编排工具到真正的多语言云原生应用平台
0
56
劳欣笑
2025-12-17
业界
Apipost分支功能:为API开发打造专属的成本控制与协作流程
0
661
刎唇
2025-12-17
回复
(6)
马璞玉
2025-10-21 00:06:00
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
这个有用。
讥慰捷
2025-10-24 00:44:50
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
yyds。多谢分享
接快背
2025-10-29 16:22:17
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
这个好,看起来很实用
敖雨燕
2025-11-14 06:44:34
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
喜欢鼓捣这些软件,现在用得少,谢谢分享!
湄圳啸
2025-12-6 15:41:11
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
不错,里面软件多更新就更好了
诈知
5 天前
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢分享
袁曼妮
3 天前
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
新版吗?好像是停更了吧。
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
靳谷雪
3 天前
关注
0
粉丝关注
14
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994893
kk14977
6845358
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9982
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9951
查看更多
今日好文热榜
102
ROS2概念之DDS
124
具身智能:零基础入门睿尔曼机械臂(四)—
392
Streamlit + LangChain 1.0 简单实现智能问
477
Oracle性能诊断与SQL优化:从9i到19c的技术
914
具身智能:零基础入门睿尔曼机械臂(五)—
220
NGD-SLAM(二)
397
[表单]HTML Learn Data Day 1
162
Oracle等待事件:性能诊断与优化的核心指南
591
“静态回调+上下文指针”模式实现回调机制
106
从 Tool Calling 到 A2A,再到 MCP. 大模型
379
BUUCTF 0ctf_2018_heapstorm2 PWN house of
294
仅通过一句提示词,就可以让大模型变得更有
984
生成式引擎优化(GEO优化)全维度技术指南
548
GEO优化实战指南2025:六大服务商核心能力
763
原始类型与泛型对比笔记
687
印度股票数据 API 对接实战指南(含实时行
661
Apipost分支功能:为API开发打造专属的成本
332
OpenCVSharp:学习人脸检测例子
553
JSAPIThree 加载单体三维模型学习笔记:Sim
127
读捍卫隐私09匿名指南