C#.NET LINQ入门基础-C/S开发框架
本文主要的是泛谈LINQ是啥?以及常见的用法大纲如下:
LINQ的根基IEnumerable和IEnumerator为啥能够被foreach?实际上,能够被foreach的对象,一定是实现了带有返回值的IEnumerator的GetEnumerator()方法的接口,而.NET内置的该接口则是IEnumerable,一般指的是IEnumerable泛型接口,让我们来看看IEnumerator接口有啥成员:
因此,实际上我们进行foreach的时候,等价于:
输出结果:
而能被LINQ的对象就是一个实现了IEnumerable的可被枚举的集合 LINQ的基本用法扩展方法在LINQ的应用:LINQ的流式语法LINQ的方法一般都是通过扩展方法了扩展的,就如最常用的几个,Where,Any,例如,我实现了一个跟Where功能类似的简化版:
其实为啥会提到用扩展方法呢?就是因为LINQ就是为了简单的能够处理复杂集合的数据,那么扩展方法就能够实现较为简单的链式查询,例如:
输出结果:
LINQ的查询表达式:LINQ的查询语法假如上述的例子有LINQ的查询表达式来编写,则写法是这样:
输出结果也是一样的:
LINQ的延迟执行:IQueryable首先我们来看看IQueryable的接口定义:
我们可以看到实际上
我们先来看段代码:
输出如下:
我们从输出可以证明,实际上在返回result1和result2,就是通过 参考
源码
参考文档:
C/S开发框架的数据访问层用LINQ吗? C/S开发框架教程:使用基础资料(数据字典)的DAL层更新主从表(或多表)数据 Visual Studio 2019 (C#/.NET)安装教程-C/S开发框架 C# DevExpress.XtraCharts获取调色板系统默认颜色-C/S开发框架 C#使用SqlBulkCopy快速导入Excel文件(xls/xlsx)-C/S开发框架 C# FastReport.NET批量打印条形码报表详解教程-C/S开发框架 C# FormTool.SetCursor设置光标为等待状态,提高用户体验-C/S开发框架 C# Combox组件动态下拉数据-C/S开发框架 C#DataTable(转List /JSON/字典 互转)-C/S开发框架 ASP.NET Core中使用滑动窗口限流-C/S开发框架 C#.NET其他程序集访问Internal类-C/S开发框架 C#读取加载XML文件-C/S开发框架 C#.NET理解Task和async await原理-C/S开发框架 理解C#.NET泛型运作原理-C/S开发框架 C#使用PInvoke.Kernel32加载非托管DLL嵌入资源-C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |