在前习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
找到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();
}
}
}



浙公网安备 33010602011771号