当前位置: 首页 > 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; }
}

http://www.dtcms.com/a/201371.html

相关文章:

  • 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
  • 第50天-使用Python+Qt+DeepSeek开发AI运势测算
  • Spring是如何实现scope作用域支持
  • Mac如何允许安装任何来源软件?
  • 《决策科学与艺术》No1: 决策树:概念、原理、发展历史、特点及应用
  • 使用 OpenCV 实现万花筒效果
  • 跨域_Cross-origin resource sharing
  • 微软押注“代理式AI网络”:一场重塑软件开发与工作方式的技术革命
  • 仓颉开发语言入门教程:常见UI组件介绍和一些问题踩坑
  • Vue 3.0 中 Teleport 详解
  • 基于 ESP32 与 AWS 全托管服务的 IoT 架构:MQTT + WebSocket 实现设备-云-APP 高效互联