Power of yield

当我们以默认的顺序访问数组的时候,我们可以使用foreach语句。
但如果我们想以倒序的方式访问数组时,我有了点疑惑,当然我们可以使用循环(in reverse order),
或者调用数组的Reverse方法Array.Reverse()。现在我建议使用另一种方式去倒序访问数组

using System;
using System.Collections.Generic;
class a
{
    static void Main()
    {
        Console.WriteLine("Normal 
order:");
        
int[] intarray = new int[] { 1,2,3,4,5};
        DisplayArray
<int>(intarray);
        Console.WriteLine("
Reverse order:");
        DisplayArray
<int>(Reverse<int>(intarray));
        Console.
Read();
    }
    static void DisplayArray
<T>(IEnumerable<T> displayedArray)
    {
        foreach (T item 
in displayedArray)
        {
            Console.WriteLine("{
0}",item);
        }
    }
    static IEnumerable
<T> Reverse<T>(T[] originalArray)
    {
        
for (int i = originalArray.Length - 1; i >= 0; i--)
        {
            yield 
return originalArray[i];
        }

    }

}
posted @ 2008-09-10 16:42  roboth  阅读(250)  评论(0)    收藏  举报