我希望你是我独家记忆

一段永远封存的记忆,随风而去
posts - 263, comments - 31, trackbacks - 0, articles - 3
   :: 首页 :: 新随笔 ::  :: 聚合  :: 管理

CollectionClasses1

Posted on 2009-07-30 09:45 Hero 阅读(216) 评论(0)  编辑 收藏 引用 所属分类: C#积累
 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 

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理