28.yield return 语法
2024-09-07 07:54:05
一、yield return
该语句可以实现在 foreach 循环中,在其他方法边遍历边输出。如下:
class Program
{
private List<int> list = new List<int>();
//给集合添加元素
private void Dimo()
{
for (int i = 0; i < 11; i++)
{
list.Add(i);
}
}
//输出偶数(一般方法无法实现一边遍历一边在其他方法中输出,
//在其他方法中只能输出最后的结果。如下)
IEnumerable<int> GetAllEvenNumber()
{
Dimo();
List<int> result = new List<int>();
foreach (int item in list)
{
if (item%2 == 0)
{
result.Add(item);
}
}
return result;
}
//使用 yield return 算法
IEnumerable<int> GetAllEventNumberByYieldReturn()
{
Dimo();
foreach (int item in list)
{
if (item%2 == 0)
{
yield return item;
}
}
yield break;
}
//方法测试
private void Test()
{
Console.WriteLine("一般方法测试:");
foreach (int item in GetAllEvenNumber())
{
Console.WriteLine(item);
}
Console.WriteLine("yield return 方法测试:");
foreach (int item in GetAllEventNumberByYieldReturn())
{
Console.WriteLine(item);
}
}
static void Main(string[] args)
{
Program obj = new Program();
obj.Test();
Console.ReadKey();
}
}
-- 输出结果 --
一般方法测试:
0
2
4
6
8
10
yield return 方法测试:
0
2
4
6
8
10
0
2
4
6
8
10
解析:
一般方法是把结果全部加载到内存中再遍历,而 yield return 方法则是边遍历边输出。
最新文章
- 2016-2017-2 《Java程序设计》预备作业2总结
- 解决java使用https协议请求出现证书不信任问题(PKIX path building failed)
- linux下core dump【总结】
- 做一些Spring AOP做过的事,封装 jdk动态代理成为一个黑盒子
- 富有表现力的javascript
- Eclipse下配置tomcat且使用eclipse开启debug模式,集成JAD反编译插件
- bistu新生-1005
- innodb 悲观锁,乐观锁
- [React] React Router: Named Components
- _splitpath / _wsplitpath 将绝对路径分割为盘符、路径、文件名、扩展名。
- gridview中button事件处理
- (.NET高级课程笔记)泛型总结
- docker容器自动化部署(一)
- CodeForces Round #548 Div2
- Codeforces Round #441 Div. 1
- Linux基础实操一
- USB HID设备报告描述符详解(转)
- SeaweedFS上手使用指南
- git出现warning: LF will be replaced by CRLF的解决方法
- 2.16 C++类与new和delete操作符