选自http://www.cnblogs.com/anjou/archive/2007/07/05/807357.html
1. MySplit 类
///
<summary>
///
MySplit 类
///
</summary>
public
class
MySplit : IEnumerable {
private
string
[] elements;
public
MySplit(
string
source,
char
[] delimiters) { elements
=
source.Split(delimiters); } IEnumerator IEnumerable.GetEnumerator() {
return
new
MyEnumerator(
this
); }
#region
在嵌套类中实现 IEnumerator 接口
///
<summary>
///
在嵌套类中实现 IEnumerator 接口,以便以后方便创建多个枚举
///
</summary>
public
class
MyEnumerator : IEnumerator {
private
int
position
=
-
1
;
private
MySplit t;
public
MyEnumerator(MySplit t) {
this
.t
=
t; }
public
bool
MoveNext() {
if
(position
<
t.elements.Length
-
1
) { position
++
;
return
true
; }
else
{
return
false
; } }
public
void
Reset() { position
=
-
1
; }
object
IEnumerator.Current {
get
{
try
{
return
t.elements[position]; }
catch
(IndexOutOfRangeException) {
throw
new
InvalidOperationException(); } } } }
#endregion
}
2. 使用
MySplit mySplit
=
new
MySplit(
"
大豆男生: I Love You!
"
,
new
char
[] {
'
'
,
'
-
'
});
foreach
(
string
item
in
mySplit) { Console.WriteLine(item); }
3. 输出结果 大豆男生: I Love You!