基于Visual Studio2010讲解C#4.0语法(5)--使用CollectionClasses

以下代码是在VS2010中调试运行通过的

using System;

using System.Collections;

// Declare the Tokens class:
public class Tokens : IEnumerable
{
   private string[] elements;

   Tokens(string source, char[] delimiters)
   {
      //将字符串分析为标记
      elements = source.Split(delimiters);
   }

    // IEnumerable 接口实现
    // 声明 IEnumerable 所需的GetEnumerator() 方法
   public IEnumerator GetEnumerator()
   {
      return new TokenEnumerator(this);
   }

   // 内部实现 IEnumerator 接口
   private class TokenEnumerator : IEnumerator
   {
      private int position = -1;
      private Tokens t;

      public TokenEnumerator(Tokens t)
      {
         this.t = t;
      }

      // 声明 IEnumerator 所需的 MoveNext() 方法
      public bool MoveNext()
      {
         if (position < t.elements.Length - 1)
         {
            position++;
            return true;
         }
         else
         {
            return false;
         }
      }

      // 声明 IEnumerator 所需的 Reset 方法
      public void Reset()
      {
         position = -1;
      }

      // 声明 IEnumerator 所需的 Current 属性
      public object Current
      {
         get
         {
            return t.elements[position];
         }
      }
   }

   // 测试Tokens,TokenEnumerator

   static void Main()
   {
       // 测试通过打破令牌将令牌字符串
      Tokens f = new Tokens("This is a well-done program.", 
         new char[] {' ','-'});
      foreach (string item in f)
      {
         Console.WriteLine(item);
      }
      Console.Read();
   }
}

 

运行界面如下:

基于Visual Studio2010讲解C#4.0语法(5)--使用CollectionClasses_第1张图片


原文链接: http://blog.csdn.net/yincheng01/article/details/5593334

你可能感兴趣的:(基于Visual Studio2010讲解C#4.0语法(5)--使用CollectionClasses)