当前位置: 首页 > news >正文

C#基础:yield return关键字的特点

一、特点

1.最终返回的结果是IEnumerable<T>
2.使用yield return时,返回的是单个元素(即T)
3.好处:延迟加载,需要时才计算

二、验证

通过打断点可知,只有当listB遍历的时候,才会进入GetList方法,因此说明它是懒加载的

class Program
{static void Main(){// 创建两个示例列表List<Teacher> listA = new List<Teacher>{new Teacher { Name = "John", Classes = "1" },new Teacher { Name = "Jane", Classes = "2" },new Teacher { Name = "Jack", Classes = "1" }};// 获取符合条件的教师IEnumerable<Teacher> listB = GetList(listA);// 输出符合条件的教师foreach (var teacher in listB){Console.WriteLine($"Name: {teacher.Name}, Classes: {teacher.Classes}");}}private static IEnumerable<Teacher> GetList(List<Teacher> data){foreach (var item in data){if (item.Classes == "1"){yield return item;}}}
}public class Teacher
{public string Name { get; set; }public string Classes { get; set; }
}

相关文章:

  • ubuntu下实时检测机械硬盘和固态硬盘温度
  • 飞桨paddle ‘ParallelEnv‘ object has no attribute ‘_device_id‘【已解决】
  • java每日精进 5.20【MyBatis 联表分页查询】
  • 【每天一个MCP】【记录向】:准备工作,创建github项目
  • 初始“扣子”--九五小庞
  • MySQL 数据库迁移方法汇总
  • Trae 04.22版本深度解析:Agent能力升级与MCP市场对复杂任务执行的革新
  • ANC--Active Noise Cancellation
  • [春秋云镜] Spoofing仿真场景
  • 链表面试题9之环形链表进阶
  • 数据中心Overlay解决方案
  • 游戏引擎学习第299天:改进排序键 第二部分
  • mapbox进阶,纯前端geojson转shape,并将shape相关文件压缩成zip压缩包并下载
  • Redis中SETNX、Lua 脚本和 Redis事务的对比
  • python打卡训练营打卡记录day31
  • 数据结构*排序
  • Docker网络全景解析:Overlay与Macvlan深度实践,直通Service Mesh集成核心
  • 机器学习 决策树-分类
  • MacBook Air A2179(Intel版)安装macOS Catalina所需时间
  • macOS 效率工具对比分析:Raycast、Alfred、uTools、Spotlight
  • 印度空军为“阵风”战机换装国产导弹,以增强作战能力推动国防自主
  • 《让世界爱中国》新书发布,探讨大变局下对外讲好中国故事
  • 1至4月国家铁路发送货物12.99亿吨,同比增长3.6%
  • 建筑瞭望|从黄浦江畔趸船改造看航运设施的升级与利用
  • 从《缶翁的世界》开始,看吴昌硕等湖州籍书画家对海派的影响
  • 荣盛发展:新增未支付债务11.05亿元