C#使用foreach语句遍历集合类型的方法
本文实例讲述了C#使用foreach语句遍历集合类型的方法。分享给大家供大家参考。具体如下:
这里演示如何实现可与foreach语句一起使用的集合类
usingSystem;
usingSystem.Collections;
publicclassTokens:IEnumerable
{
privatestring[]elements;
Tokens(stringsource,char[]delimiters)
{
elements=source.Split(delimiters);
}
//IEnumerable接口实现:
publicTokenEnumeratorGetEnumerator()//非IEnumerable版本
{
returnnewTokenEnumerator(this);
}
IEnumeratorIEnumerable.GetEnumerator()//IEnumerable版本
{
return(IEnumerator)newTokenEnumerator(this);
}
//内部类实现IEnumerator接口:
publicclassTokenEnumerator:IEnumerator
{
privateintposition=-1;
privateTokenst;
publicTokenEnumerator(Tokenst)
{
this.t=t;
}
publicboolMoveNext()
{
if(position<t.elements.Length-1)
{
position++;
returntrue;
}
else
{
returnfalse;
}
}
publicvoidReset()
{
position=-1;
}
publicstringCurrent//非IEnumerator版本:类型安全
{
get
{
returnt.elements[position];
}
}
objectIEnumerator.Current//IEnumerator版本:返回对象
{
get
{
returnt.elements[position];
}
}
}
//测试标记TokenEnumerator
staticvoidMain()
{
Tokensf=newTokens("Thisisawell-doneprogram.",
newchar[]{'','-'});
foreach(stringiteminf)//要将string更改为int
{
Console.WriteLine(item);
}
}
}
希望本文所述对大家的C#程序设计有所帮助。