日期:2014-05-18  浏览次数:20737 次

迭代器实现时候程序无法继续执行怎么回事?
C# code

        static void Main(string[] args)
        {
            string Tem_str = "";
             string str = "abcdefg"; //对str字符串逆序输出
            foreach (object i in Transpose(str))
            {
                Tem_str += i.ToString();

            }           
           Console.WriteLine(Tem_str);
          
            Console.ReadKey();
        }

     
       public static IEnumerable<object> Transpose(string n)
        {
           
                for (int i = n.Length - 1; i >= 0; i++)
                {
                    yield return (object)n[i];
                }
          
        }










------解决方案--------------------
探讨

请问yield return 和return有什么区别呢?

------解决方案--------------------
探讨
C# 3 可能需要这么写:

public static IEnumerable<object> Transpose(string n)
{
return n.Reverse().Select(x => (object)x);
}