码迷,mamicode.com
首页 > Windows程序 > 详细

C#中yield return的用法示例

时间:2018-08-09 01:17:24      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:item   int   gen   color   读取   code   []   static   rabl   

using System;
using System.Collections.Generic;

namespace YieldReturn
{
    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;
        }
    }
}

 

C#中yield return的用法示例

标签:item   int   gen   color   读取   code   []   static   rabl   

原文地址:https://www.cnblogs.com/xiaowangzhi/p/9446572.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!