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

一、特点

1.最终返回的结果是IEnumerable<T>

2.使用yield return时,返回的是单个元素(即T)

3.好处:延迟加载,需要时才计算

二、验证

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

cs 复制代码
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; }
}
相关推荐
迷渡11 分钟前
用 Rust 重写的 Bun 有 13365 个 unsafe!
开发语言·后端·rust
吃好睡好便好25 分钟前
在Matlab中绘制质点三维运动轨迹图
开发语言·学习·matlab·信息可视化
代码村新手25 分钟前
C++-多态
开发语言·c++
雨落在了我的手上35 分钟前
初识java(九):类和对象(⼀)
java·开发语言
SilentSamsara39 分钟前
泛型与 Protocol:结构化子类型的地道写法
开发语言·python·青少年编程
魔法阵维护师44 分钟前
从零开发游戏需要学习的c#模块,第二十章(2D 敌人与战斗触发)
学习·游戏·c#
沐知全栈开发1 小时前
Servlet 表单数据处理指南
开发语言
超梦dasgg1 小时前
详细讲解:WebMvcConfigurer 接口
java·开发语言·spring
阿里嘎多学长1 小时前
2026-05-22 GitHub 热点项目精选
开发语言·程序员·github·代码托管