探知,不断发现
探知不断发现
在前习lambda时候看到有介绍到迭代器。。
找到microsoft的例子添加了一个枚举器下去。。不太清楚什么场景下用这个比较多
//Copyright (C) Microsoft Corporation.  All rights reserved.

using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;

namespace Yield
{
    
class Yield
    
{
        
public  class NumberList:IEnumerable
        
{
            
// Create an array of integers.
            public static int[] ints = { 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377 };

            
// Define a property that returns only the even numbers.
            public static IEnumerable<int> GetEven()
            
{
                
// Use yield to return the even numbers in the list.
                foreach (int i in ints)
                    
if (i % 2 == 0)
                        yield 
return i;
            }


            
// Define a property that returns only the even numbers.
            public static IEnumerable<int> GetOdd()
            
{
       
                
// Use yield to return only the odd numbers.
                foreach (int i in ints)
                    
if (i % 2 == 1)
                        yield 
return i;
            }


            
IEnumerable Members
        }


        
static void Main(string[] args)
        
{

            
// Display the even numbers.
            Console.WriteLine("Even numbers");
            
foreach (int i in NumberList.GetEven())
                Console.WriteLine(i);

            
// Display the odd numbers.
            Console.WriteLine("Odd numbers");
            
foreach (int i in NumberList.GetOdd())
                Console.WriteLine(i);

            Console.WriteLine(
"枚举器");
            NumberList list 
= new NumberList();
            
foreach (int i in list)
            
{
                Console.WriteLine(i);
            }


            Console.ReadLine();
        }

    }

}


/Files/lovebanyi/Yield.rar
posted on 2007-07-20 18:01  lovebanyi  阅读(561)  评论(0)    收藏  举报