469,908 Members | 2,213 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,908 developers. It's quick & easy.

Iterate over hashtabel in reverse order

Dear all,

following code iterates thru the hash table.

Dim _Enumerator As IDictionaryEnumerator = _myhashtable.GetEnumerator

While _Enumerator.MoveNext()

....

End While

But I can't find a way to iterate in reverse direction. Something like...

Dim _Enumerator As IDictionaryEnumerator = _myhashtable.GetReverseEnumerator

While _Enumerator.MovePrevious()

....

End While

It is possible?

Thanks
Nov 21 '05 #1
11 4286
Just an addtion. I expect there could be answers saying, that hashtable is
not a right collection for that. What is a right one? I need to put/get
value/key (with key check). And I need to be able to iterate in both
directions.
Thanks,
Boni
Nov 21 '05 #2
How about creating your own class that inherits from Hashtable? Give it a
public property like InterationDirection, and then implement your own
enumerator that inspects the property and moves its cursor in the
appropriate direction. See the help file on IEnumerable and Enumerator to
see how to implement your own.

Tom Dacon
Dacon Software Consulting

"Boni" <oilia@nospam> wrote in message
news:uw**************@TK2MSFTNGP10.phx.gbl...
Dear all,

following code iterates thru the hash table.

Dim _Enumerator As IDictionaryEnumerator = _myhashtable.GetEnumerator

While _Enumerator.MoveNext()

...

End While

But I can't find a way to iterate in reverse direction. Something like...

Dim _Enumerator As IDictionaryEnumerator =
_myhashtable.GetReverseEnumerator

While _Enumerator.MovePrevious()

...

End While

It is possible?

Thanks

Nov 21 '05 #3
Dear Tom,
Do you know how to move cursor in oposite direction on hashtable? It is
exactly what I am looking for and can't figure out.
Nov 21 '05 #4

Well what did you thought of the collection object ???
there you can use keys and indexes ( you can retrieve a value by its key
value or by its index in the collection )

as you can also read out the collection count and access the values by there
index , it is easy to loop through the collection in bot directions or even
start somewhere in the middle

well hope to have given you some ideas

regards and happy VB coding :-)

Michel Posseth [MCP]

"Boni" <oilia@nospam> wrote in message
news:uK**************@TK2MSFTNGP09.phx.gbl...
Just an addtion. I expect there could be answers saying, that hashtable is
not a right collection for that. What is a right one? I need to put/get
value/key (with key check). And I need to be able to iterate in both
directions.
Thanks,
Boni

Nov 21 '05 #5
Yes I did,
but I want to use .NET collections, and AFAK collection object is a VB
collection (and it is 1-based, what I hate:).
There should be a way to have the same functionality in .NET collections, I
hope.
But never the less, Thanks for the answer.
"m.posseth" <mi*****@nohausystems.nl> schrieb im Newsbeitrag
news:uA**************@TK2MSFTNGP12.phx.gbl...

Well what did you thought of the collection object ???
there you can use keys and indexes ( you can retrieve a value by its key
value or by its index in the collection )

as you can also read out the collection count and access the values by
there index , it is easy to loop through the collection in bot directions
or even start somewhere in the middle

well hope to have given you some ideas

regards and happy VB coding :-)

Michel Posseth [MCP]

"Boni" <oilia@nospam> wrote in message
news:uK**************@TK2MSFTNGP09.phx.gbl...
Just an addtion. I expect there could be answers saying, that hashtable
is not a right collection for that. What is a right one? I need to
put/get value/key (with key check). And I need to be able to iterate in
both directions.
Thanks,
Boni


Nov 21 '05 #6
Normally movenext is implemented like this

Function MoveNext() As Boolean Implements IEnumerator.MoveNext

nIndex = nIndex + 1

Return (nIndex <= Collection.Count)

End Function

and it is also easy to implement MovePrevious.

But for hashtable it seems to be not possible to get value by index. (I am
wondering, how the normal evumerator for hashtable is implemented). Did I
missed something?

"Boni" <oilia@nospam> schrieb im Newsbeitrag
news:ud**************@TK2MSFTNGP12.phx.gbl...
Dear Tom,
Do you know how to move cursor in oposite direction on hashtable? It is
exactly what I am looking for and can't figure out.

Nov 21 '05 #7
Boni,

Why not just use a datatable, there is so much build in that?

Cor
Nov 21 '05 #8

hmmm well i do not agree on that ,, but that is a total different discussion
and i will not bother you with that :-)

however the answer for your question can in my opinion be found at my
personal uber guru`s website ( Francesco Balena )
read this
http://www.vb2themax.com/ShowContent...9-a6cf9b7953f4
and see also on the bottom that it also supports Hashtables

regards

Michel Posseth [MCP]
"Boni" <oilia@nospam> wrote in message
news:%2****************@TK2MSFTNGP09.phx.gbl...
Yes I did,
but I want to use .NET collections, and AFAK collection object is a VB
collection (and it is 1-based, what I hate:).
There should be a way to have the same functionality in .NET collections,
I hope.
But never the less, Thanks for the answer.
"m.posseth" <mi*****@nohausystems.nl> schrieb im Newsbeitrag
news:uA**************@TK2MSFTNGP12.phx.gbl...

Well what did you thought of the collection object ???
there you can use keys and indexes ( you can retrieve a value by its
key value or by its index in the collection )

as you can also read out the collection count and access the values by
there index , it is easy to loop through the collection in bot
directions or even start somewhere in the middle

well hope to have given you some ideas

regards and happy VB coding :-)

Michel Posseth [MCP]

"Boni" <oilia@nospam> wrote in message
news:uK**************@TK2MSFTNGP09.phx.gbl...
Just an addtion. I expect there could be answers saying, that hashtable
is not a right collection for that. What is a right one? I need to
put/get value/key (with key check). And I need to be able to iterate in
both directions.
Thanks,
Boni



Nov 21 '05 #9
Thanks, I will take a look in datatable.
"Cor Ligthert [MVP]" <no************@planet.nl> schrieb im Newsbeitrag
news:up**************@TK2MSFTNGP15.phx.gbl...
Boni,

Why not just use a datatable, there is so much build in that?

Cor

Nov 21 '05 #10
>> Why not just use a datatable, there is so much build in that?

keep in mind that in comparisation to a hashtable it is much much slower (
even better as far as i know the hashtable is the fastest data retriever
there is )

michel posseth

"Boni" <oilia@nospam> schreef in bericht
news:eR**************@tk2msftngp13.phx.gbl...
Thanks, I will take a look in datatable.
"Cor Ligthert [MVP]" <no************@planet.nl> schrieb im Newsbeitrag
news:up**************@TK2MSFTNGP15.phx.gbl...
Boni,

Why not just use a datatable, there is so much build in that?

Cor


Nov 21 '05 #11
> keep in mind that in comparisation to a hashtable it is much much slower
( even better as far as i know the hashtable is the fastest data retriever
there is )


Depends how you use it.

When you do
a = 1*2 you can better do
a = 2

When you do
a = 2*2 you can probably better do
a = 2+2

When you do
a = 10000 * 2 it is (probably) not better to do

for i = 1 to 10000
a += 2
next

A hashtable is in my opinion made to use with a dictionary not to iterate
over in a reverse order.
http://msdn.microsoft.com/library/de...onarytopic.asp

However, just my idea

:-))

Cor
Nov 21 '05 #12

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

35 posts views Thread by Raymond Hettinger | last post: by
8 posts views Thread by Jim Langston | last post: by
3 posts views Thread by R. Rajesh Jeba Anbiah | last post: by
14 posts views Thread by ford_desperado | last post: by
6 posts views Thread by Zri Man | last post: by
20 posts views Thread by sahukar praveen | last post: by
19 posts views Thread by RAJASEKHAR KONDABALA | last post: by
10 posts views Thread by aatish19 | last post: by
20 posts views Thread by mike7411 | last post: by
1 post views Thread by Waqarahmed | last post: by
reply views Thread by Salome Sato | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.