【发布时间】:2014-01-08 09:37:46
【问题描述】:
在我的情况下,我无法理解 vb.net 中的 IEnumerator 没有发生什么。
我有这段代码,它从数据库中提取数据,然后读取前两行,将每一行中的一列汇总为“numGirls”。然后,使用“resEnum1.Reset()”,我希望“resEnum”将自己重置为集合的开头,但事实并非如此;
Dim resEnum1 As IEnumerator = iTrack.res_by_gender(False, YearCB.Text).GetEnumerator
resEnum1.Reset()
Dim resSet As Object
Dim numGirls As Integer = 0
For x = 0 To 1
resEnum1.MoveNext()
resSet = resEnum1.Current
numGirls += resSet.qty
Next
resEnum1.Reset()
此时,我的代码应该继续并从集合开始 (-1) 开始使用 MoveNext 遍历集合;
While resEnum1.MoveNext
'...........'
End While
但是,IEnumerator (resEnum1) 实际上并未重置,而是从集合的第三行继续。为什么?
显然我不了解某些东西,除非由我来重新发明轮子并在代码中实现“重置”?
【问题讨论】:
-
也许返回的枚举数是“只进的”?你知道
res_by_gender的DataType吗? -
噢!你是对的,至少我认为你是对的。类型是 ISingleResult,据我所知,这确实是只用于战争的。非常感谢您的产品。
-
我已经发布了一个答案,因为其他人可能会遇到同样的问题。
标签: vb.net reset ienumerator