[转载]用新VB.NET 枚举提高效率
当你还使用For…Each循环或者是For 1 To Count 循环处理集合的时候,VB .NET中加入了一种新的技术,IEnumerator界面。IEnumerator界面支持两种方法和一种特性。MoveNext方法能在集合中一次移动一条记录。Reset方法能使枚举器复位到集合的起始。Current特性能从集合返回当前记录。
下面的程序显示了这三种计算集合的可能的办法。
Dim testCollection As New Collection()
Dim collectionItem As String
Dim loopCounter As Integer
Dim enumCollection As Ienumerator
With testCollection
.Add("1")
.Add("2")
.Add("3")
End With
For Each collectionItem In testCollection
Console.Out.WriteLine(collectionItem)
Next
For loopCounter = 1 To testCollection.Count
Console.Out.WriteLine(testCollection.Item(loopCounter))
Next
enumCollection = testCollection.GetEnumerator()
Do While enumCollection.MoveNext
Console.Out.WriteLine(enumCollection.Current)
Loop
IEnumerator带给你For…Each技术所能提供的计数功能,另外还有使循环复位和从起始位置开始的新加功能。
Ps: 以上代码为IEnumerator与for each 循环读取集合的对比。 IEnumerator 在很多具有集合的属性里面都带的有。建议大家以后用IEnumerator来操作集合,microsoft对其做了很大优化,更符合.net特性. 这个特性很重要。比如返回IEcookies,返回IIS 头 在.net里面都是以数组的方式存在的。数组一方面可以枚举,所以满足IEnumerator特性,使程序结构更加清晰。
页:
[1]