news 2026/6/23 23:12:46

.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/6/23 2:51:23

DVWA -SQL Injection-通关教程-完结

DVWA -SQL Injection-通关教程-完结 SQL注入是一种攻击者通过在应用程序的输入字段中插入恶意SQL代码&#xff0c;从而操纵后端数据库查询的攻击技术。如果应用程序未对用户输入进行适当过滤&#xff0c;这些恶意SQL代码会被数据库执行&#xff0c;导致数据泄露、篡改或破坏。 …

作者头像 李华
网站建设 2026/6/23 17:36:46

0x3f第七天 二叉搜索树

1.前序遍历&#xff1a;4213657先验证根是否满足大于左子树最大值&#xff0c;小于右子树最小值遍历左子树&#xff08;更新右值&#xff09;遍历右子树&#xff08;更新左值&#xff09;对于最大值和最小值&#xff0c;可以直接在函数里加上def isValidBST(self, root: Option…

作者头像 李华
网站建设 2026/6/23 15:14:03

扩容U盘,资料毁灭盘

早就听过扩容盘了&#xff0c;没想到也发生在我身上。原本上面是印着长城的 &#xff0c;但现在掉漆了。店铺现在这个商品下架了&#xff0c;但店铺是有品牌认证的这个U盘也算是用了将近4年了&#xff0c;存的都是大学的上课的作业。大四没课回家了几个月没有使用过这个U盘&…

作者头像 李华
网站建设 2026/6/23 3:18:20

数据结构学习篇(5)---顺序表和链表的区别

对于顺序表和链表的异同&#xff0c;上面这个表格直观展示了两者的不同之处&#xff0c;有几点可以做一下解释&#xff1a;顺序表和链表在逻辑结构上都是连续的&#xff0c;但是在物理结构&#xff0c;也就是存储空间上&#xff0c;顺序表是连续的&#xff0c;因为他的本质是数…

作者头像 李华