zoukankan      html  css  js  c++  java
  • C#yield return用法示例

    using System;
    using System.Collections.Generic;
    
    namespace Test
    {
        class Program
        {
            static void Main(string[] args)
            {
                var list = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    
                var resultNormal = EvenNormal(list);
                foreach (var item in resultNormal)
                {
                    Console.WriteLine(item);
                }
    
                var resultYieldReturn = EvenYieldReturn(list);
                foreach (var item in resultYieldReturn)
                {
                    Console.WriteLine(item);
                }
            }
    
            static IEnumerable<int> EvenNormal(List<int> list)
            {
                var result = new List<int>();
                foreach (var item in list)
                {
                    if (item % 2 == 0)
                    {
                        result.Add(item);// 类似DataSet(整个结果集加载到内存中),适合少量数据的遍历
                    }
                }
                return result;
            }
    
            static IEnumerable<int> EvenYieldReturn(List<int> list)
            {
                foreach (var item in list)
                {
                    if (item % 2 == 0)
                    {
                        yield return item;// 类似DataReader(读取一条返回一条),适合海量数据的遍历
                    }
                }
                yield break;
            }
        }
    }
  • 相关阅读:
    11月1号笔试题总结
    10月30笔试题总结
    web前端常用单词
    9月13日·碎碎念
    python 匿名函数
    python 二分法查找
    python 递归
    python内置函数
    python 列表生成式
    python 生成器
  • 原文地址:https://www.cnblogs.com/xiaowangzhi/p/9446572.html
Copyright © 2011-2022 走看看