473,396 Members | 1,849 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,396 software developers and data experts.

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 4472
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 thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

35
by: Raymond Hettinger | last post by:
Here is a discussion draft of a potential PEP. The ideas grew out of the discussion on pep-284. Comments are invited. Dart throwing is optional. Raymond Hettinger ...
8
by: Jim Langston | last post by:
I have a class I designed that stores text chat in a std::vector<sd::string>. This class has a few methods to retrieve these strings to be displayed on the screen. void ResetRead( bool Reverse,...
3
by: R. Rajesh Jeba Anbiah | last post by:
Unfortunately, I couldn't find any way to traverse the object array in reverse order. I'd thought there must be a way to do it with for..in loop, but couldn't find anything yet. Could someone...
14
by: ford_desperado | last post by:
Why isn't ALLOW REVERSE SCANS the default? Why do we have to - drop PK - create an index - recreate PK What are the advantages of indexes that do not allow reverse scans?
6
by: Zri Man | last post by:
I'm relatively new to DB2 and was reasonably amused to see the REVERSE SCAN availability for Indexes. My assumptions are as follows: DB2/UDB uses B-Tree for indexing by default and is likely...
20
by: sahukar praveen | last post by:
Hello, I have a question. I try to print a ascii file in reverse order( bottom-top). Here is the logic. 1. Go to the botton of the file fseek(). move one character back to avoid the EOF. 2....
19
by: RAJASEKHAR KONDABALA | last post by:
Hi, Does anybody know what the fastest way is to "search for a value in a singly-linked list from its tail" as oposed to its head? I am talking about a non-circular singly-linked list, i.e.,...
10
by: aatish19 | last post by:
1: Write a program that asks the user to input an integer value and print it in a reverse order Sample Output Enter any number 65564 Reverse of 65564 is 46556 2: Write a program that takes a...
20
by: mike7411 | last post by:
Is there any easy way to reverse the order of the bits in a byte in C++? (i.e. 00000001 becomes 10000000)
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.