一、List


List构造函数一共有3个

List底层的实现是通过Array数组来实现的(private T[] _items

怎么实现无限地往数组里面添加元素?(示意图)

二、LINQ之ToList

System.Linq命名空间下实现IEnumerable<T>的扩展方法。

在开发过程中,LINQ的ToList()方法经常被使用,帮助我们将迭代器转换为具体的List对象。为了更好的了解该方法的工作原理,我们从源码的角度对其进行分析。

ToList本身代码很简单,就是判断参数source是否实现了IIListProvider接口,如果实现了该接口,则调用该方法进行转换,如果未实现该接口,则直接调用List的构造方法,创建一个新的List,然后返回。

IIListProvider接口定义了三个方法,其中包括ToList方法。

Select().Tolist() 示例分析

进入扩展方法SelectstudentListList类型,所以返回SelectListIterator迭代器对象,该对象包含投影方法和lList数据。
进入扩展方法ToListSelectListIterator实现了IIListProvider方法,所以实际上是调用SelectListIterator自己的ToList方法,该方法源码如下:

IPartition是一个用于处理分页的接口,该接口继承了 IIListProvider,因此SelectListIterator类需实现方法ToList
进入该方法后,获取studentList内元素个数,因为List实现了ICollection接口,所以通过属性值Count直接获取序列内元素个数;
定义新的List序列。
在序列每个元素上执行投影操作,将结果存入新建的List中;
返回List对象。

NetCore List揭秘相关推荐

  1. 2020年国内优秀原创IT技术书都在这了

    2020年引进版的专业技术书大家都有了解了,那么你知道上一年有哪些优秀的原创编程书吗?小编来给您汇总一下. 1.MySQL是怎样运行的 从根儿上理解MySQL 豆瓣评份9.3 本书采用诙谐幽默的表达方 ...

  2. NetCore学习实践1__项目创建和配置文件的获取

    工具安装:vs2017+版本,.Net Core2.0组件 .NET Core 2.0 SDK win-x64下载地址:https://download.microsoft.com/download/ ...

  3. 康复治疗学可以考计算机吗,【大揭秘】2018“人机对话”康复医学治疗技术专业技术资格考试...

    原标题:[大揭秘]2018"人机对话"康复医学治疗技术专业技术资格考试 昨天,关于"2018年康复医学治疗技术专业技术资格考试采用人机对话考试方式"的通知一经发 ...

  4. netcore 图片 文件大小_NetCore 3.0文件上传和大文件上传的限制详解

    NetCore文件上传两种方式 NetCore官方给出的两种文件上传方式分别为"缓冲"."流式".我简单的说说两种的区别, 1.缓冲:通过模型绑定先把整个文件保 ...

  5. .NET Core 常用加密和Hash工具NETCore.Encrypt

    前言 在日常开发过程中,不可避免的涉及到数据加密解密(Hash)操作,所以就有想法开发通用工具,NETCore.Encrypt就诞生了.目前NETCore.Encrypt只支持.NET Core ,工 ...

  6. 零代价修复海量服务器的内核缺陷——UCloud内核热补丁技术揭秘

    下述为UCloud资深工程师邱模炯在InfoQ架构师峰会上的演讲--<UCloud云平台的内核实践>中非常受关注的内核热补丁技术的一部分.给大家揭开了UCloud云平台内核技术的神秘面纱. ...

  7. 红芯丑闻揭秘者 Touko 专访 | 关于红芯丑闻的更多内幕……

    专栏 | 九章算法 网址 | www.jiuzhang.com ❤ 红芯事件 近日,一则<自主研发的国产浏览器内核,红芯宣布获2.5亿C轮融资>的讯息再次将"国产自主创新&quo ...

  8. 揭秘vue——vue-cli3全面配置

    ★ vue-cli3 全面配置 ★ Nuxt.js 全面配置 创建项目 配置环境变量   通过在package.json里的scripts配置项中添加--mode xxx来选择不同环境   在项目根目 ...

  9. 【云周刊】第146期:史上最大规模人机协同的双11,12位技术大V揭秘背后黑科技...

    摘要: 史上最大规模人机协同的双11,12位技术大V揭秘背后黑科技,INTERSPEECH 2017系列 | 语音识别之语言模型技术,机器学习初学者必须知道的十大算法,云数据库SQL Server 2 ...

最新文章

  1. 用了10多年的 Tomcat 居然有bug,这能忍?
  2. 通过rpm安装postgresql-9.6无法远程连接的问题
  3. SAP CRM Fiori应用 my Opportunity的扩展
  4. Centos7制作局域网http的yum源
  5. docker 安装kafka(快速)
  6. 代码合并工具_合并上千个Excel表格,1秒就能完成
  7. apriori数据集_关联分析——基于Apriori算法实现
  8. 干货|80天自学通过高级项目管理师
  9. 使用js-xlsx纯前端导出excel
  10. vmware 桌面 服务器版,VMware Workstation
  11. 对convertView和ViewHolder的理解
  12. 新颖的自我介绍_三句有创意的自我介绍
  13. python xlsm_Excel中的xls、xlsx、xlsm混合文件,看我如何用Python统一处理!
  14. html5人脸拼图,面向眼机交互的界面控件设计方法研究.pdf
  15. Java实现内存分配算法 FF(首次适应算法) BF(最佳适应算法)
  16. 11.03 CSS的基本使用
  17. C语言的运算符和表达式
  18. 不懂envoyfilter也敢说精通istio系列-ratelimit-istio ratelimit完全手册
  19. Windows系统下gpu版tensorflow+anaconda3安装经验
  20. react----元素的在窗口范围内的拖动(react-rnd)

热门文章

  1. 城市轨道交通的GoA
  2. 手动备份iFIX文件并将他们恢复到一台新的iFIX机器
  3. android调用系统裁剪功能,Android图片剪裁之调用系统剪裁
  4. Qt判断文件夹路径、文件是否存在不存在则创建
  5. QHYCCD型号Q9进行LRGB拍摄操作记录
  6. VirtualBox基于Windows安装
  7. 聚合数据火车票订票接口完成火车票订票流程(PHP)
  8. 数学基础-均值、期望、方差、标准差、协方差
  9. 留良乡稳健投资理财的四大原则
  10. 云桌面-ThinVirt3-EXP操作手册(四)云终端连接虚拟机