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; }
}
相关推荐
Evand J20 小时前
【MATLAB例程】基于USBL和DVL的线性回归误差补偿,对USBL和DVL导航数据进行相互补偿,提高定位精度,附代码下载链接
开发语言·matlab·线性回归·水下定位·usbl·dvl
爱喝白开水a21 小时前
LangChain 基础系列之 Prompt 工程详解:从设计原理到实战模板_langchain prompt
开发语言·数据库·人工智能·python·langchain·prompt·知识图谱
Neverfadeaway21 小时前
【C语言】深入理解函数指针数组应用(4)
c语言·开发语言·算法·回调函数·转移表·c语言实现计算器
武子康21 小时前
Java-152 深入浅出 MongoDB 索引详解 从 MongoDB B-树 到 MySQL B+树 索引机制、数据结构与应用场景的全面对比分析
java·开发语言·数据库·sql·mongodb·性能优化·nosql
杰克尼1 天前
JavaWeb_p165部门管理
java·开发语言·前端
一成码农1 天前
JavaSE面向对象(下)
java·开发语言
偶尔的鼠标人1 天前
Avalonia DataGrid 控件的LostFocus事件会多次触发
开发语言·c#
晚风残1 天前
【C++ Primer】第十二章:动态内存管理
开发语言·c++·c++ primer
ytttr8731 天前
C# 仿QQ聊天功能实现 (SQL Server数据库)
数据库·oracle·c#
_extraordinary_1 天前
Java Spring日志
java·开发语言·spring