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; }
}