CollectionClasses1

 1  using  System;
 2  using  System.Collections.Generic;
 3  using  System.Text;
 4 
 5  using  System.Collections;
 6 
 7  namespace  CSharp
 8  {
 9       public   class  Tokens : IEnumerable
10      {
11           private   string [] elements;
12 
13           public  Tokens(  string  source,  char [] delimiters )
14          {
15               // 将字符串分析为标记
16              elements  =  source.Split( delimiters );
17          }
18 
19           //  IEnumerable 接口实现
20           //  声明 IEnumerable 所需的GetEnumerator() 方法
21           public  IEnumerator GetEnumerator()
22          {
23               return   new  TokenEnumerator(  this  );
24          }
25           //  内部实现 IEnumerator 接口
26           private   class  TokenEnumerator : IEnumerator
27          {
28               private   int  position  =   - 1 ;
29               private  Tokens t;
30 
31               public  TokenEnumerator( Tokens t )
32              {
33                   this .t  =  t;
34              }
35 
36               // 声明 IEnumerator 所需的 MoveNext() 方法
37               public   bool  MoveNext()
38              {
39                   if  ( position  <  t.elements.Length  -   1  )
40                  {
41                      position ++ ;
42                       return   true ;
43                  }
44                   else
45                  {
46                       return   false ;
47                  }
48              }
49 
50               // 声明 IEnumerator 所需的 Reset 方法
51               public   void  Reset()
52              {
53                  position  =   - 1 ;
54              }
55 
56               // 声明 IEnumerator 所需的 Current 属性
57               public   object  Current
58              {
59                   get
60                  {
61                       return  t.elements[position];
62                  }
63              }
64          }
65      }
66 
67 
68       class  Program
69      {
70           static   void  Main(  string [] args )
71          {
72              Tokens f  =   new  Tokens(  " This is a well-done program. " ,
73                   new   char [] {  '   ' ' - ' } );
74 
75               foreach  (  string  item  in  f )
76              {
77                  Console.WriteLine( item );
78              }
79          }
80      }
81  }
82 

你可能感兴趣的:(CollectionClasses1)