IQueryable与IEnumberable的区别

【气候极端指数】MATLAB计算各种气候极端指数 简介各类气候极端指数,及其MATLAB计算代码 阅读详情

IEnumerable接口

公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代。也就是说:实现了此接口的object,就可以直接使用foreach遍历此object;

IQueryable 接口

它继承 IEnumerable 接口,而因为.net版本加入Linq和IQueryable后,使得IEnumerable不再那么单调,变得更加强大和丰富。

为了区别两个接口,我们通过一个实际的例子来解释一下。

根据上篇随笔的实例,编写如下代码:

复制代码
  
static void Main( string [] args) { // 创建数据库访问网关 using (SchoolDBEntities schoolEntities = new SchoolDBEntities()) { // 查询的结果放入IQueryable接口的集合中 IQueryable < T_Class > classesIQue = (from c in schoolEntities.T_Class orderby c.ID select c).Skip < T_Class > ( 3 ).Take < T_Class > ( 3 ); // 注意这个AsEnumerable<T_Class>()在分页查询之前,先将其转换成IEnumerable类型 IEnumerable < T_Class > classesIEnu = (from c in schoolEntities.T_Class orderby c.ID select c).AsEnumerable <T_Class> ().Skip < T_Class > ( 3 ).Take < T_Class > ( 3 ); // 因为启用了延迟加载机制,所以下面调用一下,才会真正去读取数据库 int i = 0 ; foreach (var c in classesIQue) { i ++ ; } Console.WriteLine(i); foreach (var c in classesIEnu) { i ++ ; } Console.WriteLine(i); } Console.WriteLine( " OK " ); Console.ReadKey(); }
复制代码

注意红色代码部分,在用linq查询实体集合之前我先将其转换成  IEnumerable接口类型,看看最终执行的sql是怎样的。

第一种:直接返回 IQueryable类型的查询,如下图所示:


第二种:在用分页查询之前先将其转换成 IEnumerable实际执行的sql如下图所示:


总结

IQueryable接口与IEnumberable接口的区别:  IEnumerable<T> 泛型类在调用自己的SKip 和 Take 等扩展方法之前数据就已经加载在本地内存里了,而IQueryable<T> 是将Skip ,take 这些方法表达式翻译成T-SQL语句之后再向SQL服务器发送命令,它并不是把所有数据都加载到内存里来才进行条件过滤。


基于 Google Colab 的 mask rcnn 训练自己的数据集(以实例分割为例) 详细步骤1 数据集的制作1.1 数据标注1.2 生成数据集2 环境的搭建2.1 搭建流程2.2 注意事项(报错)3 开始训练4 可视化4.1 修改webcam.py文件4.2 进行可视化5 参考文章 1 数据集的制作 1.1 数据标注 使用 labelme=4.5.6 版本进行标注,标注文件指定到保存图片的路径下,也就是json文件和jpg文件放在同一个文件夹里 1.2 生成数据集 先手动划分训练集和测试集(包括图像和标注文件),然后分别整合它们的标注信息,参考代码:1_ships_to_coco.py 阅读详情

相关推荐

如何解决ipa包上传App Store Connect时出现的无效二进制文件问题

本文详细解析了ipa包上传App Store Connect时出现无效二进制文件问题的常见原因及解决方案。从Scheme配置、架构支持到权限声明,提供了全面的检查步骤和实用技巧,帮助开发者快速定位并解决上传问题,确保应用顺利通过审核。

weixin_28833069的博客 315

C# IEnumberable 的用法

C# IEnumberable 的用法using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace Ienumberable { class Program { st

u010969626的博客 5286

检索生成(RAG) vs 长文本大模型:实际应用中如何选择?

大模型的上下文理解能力直接影响到 LLMs 在复杂任务和长对话中的表现。本期内容聚焦于两种主流技术:长上下文(Large Context Windows)和检索增强生成(RAG)。这两种技术各有何优势?在实际应用中,我们又该如何权衡选择?文章不仅详细阐述了这两种技术的工作原理,还深入分析了它们在效率、准确性和实施成本等方面的差异。文章特别提到了在执行重复性任务时使用 Context Caching 优化长上下文的优势,然而,缓存策略的效果很大程度上取决于提示词的可预测性。

2401_85782938的博客 1256

转载-------C#基础之IEnumerable

1.IEnumerable的作用   在使用Linq查询数据时经常以IEnumerable<T>来作为数据查询返回对象,在使用foreach进行遍历时需要该对象实现IEnumerable接口,这2个功能让我对IEnumerable充满了无穷的好奇。然而在VS中查看IEnumera...

chengquying3939的博客 2230

「 网络安全常用术语解读 」软件成分分析SCA详解:从发展背景到技术原理再到业界常用检测工具推荐

软件成分分析(Software Composition Analysis,SCA)是一种用于识别和分析软件内部组件及其关系的技术,旨在帮助开发人员更好地了解和管理其软件的构建过程,同时可帮助安全人员揭秘软件内部结构的神秘面纱。SCA技术的发展与软件行业的快速发展密不可分,下面将介绍SCA的发展背景、技术原理以及当前主流SCA工具。

所有成功的背后,都是痛苦的坚持,所有的痛苦,都是傻瓜般的不放弃! 5633

3D点云目标检测Complex-YOLO(训练篇)(一)———KITTI数据集预处理与制作

KITTI dataset Download dataset KITTI 3D Object Detection Evaluation 2017 link 下载四个部分,共41.4GB 解压后为四部分内容(相机校准矩阵calib、RGB图像image_2、标签label_2、点云数据velodyne) 对应的testing和training数据。其中,training数据为7481张(图片和点云对应的场景),testing数据 7518张(无label_2数据)。 Data Preprocess

“知识最大的敌人不是无知,而是错觉” 7152

C#IEnumberable<>

IEnumerable接口定义了一个名为GetEnumerator的方法,该方法返回一个实现了IEnumerator接口的枚举器。IEnumerator接口提供了对集合中元素的访问和操作,它包含了MoveNext、Current和Reset等方法,用于在集合上进行迭代。在C#中,IEnumerable是一个泛型接口,用于表示一个可枚举的集合。在Main方法中,我们创建了一个MyCollection实例,并使用foreach语句遍历集合中的元素并输出到控制台。方法中,我们创建了一个。

ultramand的博客,重生之我在cad上二次开发猛猛敲C#代码~ 2292

枪支/刀具检测 (gun, knife) - SIXray, Clasp Dataset,YOLOv11+UI界面+数据集

python复制编辑# 计算 CIoU 损失。

YOLO 539

IQueryable与IEnumberable

IQueryable只是表示一个可以放到数据库中执行的查询,他不会立即执行,只是表示可以被执行而已。判断一个方法是否为立即执行方法的简单方式是,查看他的返回值类型是否为IQueryable,如果是那他就是非立即执行方法,否则就是立即执行方法。和IEnumerable 是我们.net常用的两个接口类,用法几乎一样,无论我们使用筛选丶排序丶聚合函数,两种方法都可以返回我们想要的数据。IQueryable的延迟执行可以让我们在开发中可以先使用IQueryable拼接出复杂的查询条件,然后再去执行查询。

weixin_45944602的博客 1324

slew dreate,slew threshold与transition计算

​只看rise情况下,from pin取slew threshold10%-90%的区间,slew derate为1,计算得到transition为1.002e-10,to pin的slew threshold 为30%-70%,slew derate 0.5,从波形列表上取相近的值3.75e-10和8.75e-10,计算得到transition为(8.75e-10-3.75e-10)/0.5=1e-9,考虑精度和取值区间问题,基本符合工具计算的值,如下:​。如下示例,在.lib库中有定义以下内容。

m0_61544122的博客 794

【HomeAssistant接入的设备实现天猫精灵】

Home Assistant的HassLife组件: 此Home Assistant的组件可以让天猫精灵、小爱同学对接HomeAssistant平台上的设备,控制设备、查询上报设备状态。 注意:本插件只负责上报HomeAssistant的设备状态信息到服务器,控制功能需要在HassLife 平台上配置。.........

vor234的博客 1万+

IQueryable、IEnumberable 、IList与List区别

基本概念:IEnumerable:使用的是LINQ to Object方式,它会将AsEnumerable()时对应的所有记录都先加载到内存,然后在此基础上再执行后来的QueryIQeurable(IQuerable<T>):不在内存加载持久数据,因为这家伙只是在组装SQL,(延迟执行) 到你要使用的时候,例如 list.Tolist() or list.Cou...

dingsiquan6406的博客 618

SAP 与 Palantir 合作全景解析:这不是普通集成,而是把 ERP、数据语义层、云迁移与企业级 AI 串成一条价值链

SAP与Palantir的战略合作聚焦企业数字化转型核心痛点,通过深度技术整合构建"数据-决策-执行"闭环。合作包含四大主线:云迁移连续性保障、SAP业务数据云与Palantir平台对接、联合工程开发、高监管行业优先落地。技术实现上采用SAP认证插件,支持双向数据交互和实时业务动作触发。该合作突破了传统ERP系统局限,将业务语义与AI执行相结合,特别适合制造业供应链优化、财务争议处理等高价值场景,为企业在云迁移过程中实现业务连续性与智能化升级提供新范式。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 193

IEnumberable与IQueryable区别

IEnumberable 与IQueryable  区别 static void Main(string[] args) { int total = -1; List list1 = GetPageListByIEnumerable(s => s.vID > 5, s => s.vID, 5, 2, false, out tot

AwakeningWolf的博客 1501

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

IQueryable与IEnumberable的区别有哪些

 一、IEnumerable接口 公开枚举器,该枚举器支持在指定类型的集合上进行简单迭代。也就是说:实现了此接口的object,就可以直接使用foreach遍历此object   二、IQueryable 接口 它继承 IEnumerable 接口,而因为.net版本加入Linq和IQueryable后,使得IEnumerable不再那么单调,变得更加强大和丰富。   三、IQu

whazhl的专栏 868

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

C# IEnumberable & IQueryable 区别

转自 http://blog.youkuaiyun.com/daimeisi123/article/details/46976093 在应用到IEnumberable 和IQueryable两个接口时,代码往往很相似,从而造成了很多困惑,然后事实上他们两是有很大的区别的,各种都有自己特定的使用场景。 下面是IEnumberable和IQueryable的属性对比: ...

weixin_30894389的博客 64

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

C# IEnumberable & IQueryable 区别

转 http://www.cnblogs.com/shw0099/p/6251466.html 在应用到IEnumberable 和IQueryable两个接口时,代码往往很相似,从而造成了很多困惑,然后事实上他们两是有很大的区别的,各种都有自己特定的使用场景。 下面是IEnumberable和IQueryable的属性对比:       IEnumerable  IQu

new Girl的博客 821

IQueryable & IEnumberable 区别

IQueryable & IEnumberable 区别 标签: c# 2012-12-06 19:51 3335人阅读 评论(0) 收藏 举报  分类: Asp.net Mvc(10)  Namespace And Inheritances Relations                    ?

行成于思毁于随 898

IQueryable接口与IEnumberable区别

IEnumerable 泛型类在调用自己的SKip 和 Take 等扩展方法之前数据就已经加载在本地内存里了,而IQueryable 是将Skip ,take 这些方法表达式翻译成T-SQL语句之后再向SQL服务器发送命令。也是延迟在我要真正显示数据的时候才执行 演示linq to ef中使用IEnumberable与IQueryable的区别,要用到的SQL Server Profiler

tyfbhlxd的博客 404
上一篇: 什么是ORM
下一篇: 数据库集群
MsdnWoo
博客等级 码龄11年 19粉丝 77原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值