发新话题
打印

[转载]用新VB.NET 枚举提高效率

[转载]用新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特性.
论坛地址: http://www.ssk2.cn & www.iisuser.com

TOP

这个特性很重要。比如返回IEcookies,返回IIS 头 在.net里面都是以数组的方式存在的。数组一方面可以枚举,所以满足IEnumerator特性,使程序结构更加清晰。
论坛地址: http://www.ssk2.cn & www.iisuser.com

TOP

发新话题