Solved

Comparing Hashtables

Posted on 2003-10-23
5
2,477 Views
Last Modified: 2012-05-04
Does anyone know how to compare two hashtables?

Hashtable ht1 = new Hashtable();
ht1.Add( "exampleKey", "exampleValue" );

Hashtable ht2 = new Hashtable();
ht2.Add( "exampleKey", "exampleValue" );

// This returns false
ht1.Equals( ht2 );
0
Comment
Question by:chadboyer
  • 2
  • 2
5 Comments
 
LVL 11

Expert Comment

by:vo1d
ID: 9609713
it depends on what you wanna compare.
if you wann check if they are euqal you can check if the dimensions are the same at first.
if the dimensions are the same, you can doublecheck the specific elements to each other.
do you mean that?
0
 

Author Comment

by:chadboyer
ID: 9609873
I want to compare the dimensions and the elements.  I was just hoping that ht1.Equals( ht2 ) would do the work for me.  But it doesn't.
0
 
LVL 22

Accepted Solution

by:
_TAD_ earned 125 total points
ID: 9609957


ht1.Equals(ht2) checks to see if the ht1 and ht2 variables refer to the same object.


Hastable ht1 = new Hashtabl();
...
..    Fill Hashtable
.

Hashtable ht2 = ht1;

ht1.Equals(ht2)   //  TRUE


This is because ht1 and ht2 really are the same object


Hastable ht1 = new Hashtabl();
Hastable ht2 = new Hashtabl();
ht1.Equals(ht2) // FALSE

you have two distinct objects here ( two "new" statements means two unique obects)


0
 

Author Comment

by:chadboyer
ID: 9610030
I wrote my own Hashtable compare function.  Thanks anyway...
0
 
LVL 22

Expert Comment

by:_TAD_
ID: 9610174


here is some code to compare hashtable values and keys



                  Hashtable ht1 = new Hashtable();

                  ht1.Add("1","one");
                  ht1.Add("2","two");
                  ht1.Add("3","three");
                  ht1.Add("4","four");


                  Hashtable ht2 = new Hashtable();

                  ht2.Add("1","one");
                  ht2.Add("2","two");
                  ht2.Add("3","three");
                  ht2.Add("4","four");

                  IDictionaryEnumerator myEnum = ht1.GetEnumerator();
            
                  bool isSame = true;

                  while ( myEnum.MoveNext() )
                        if (ht2.ContainsKey(myEnum.Key))
                        {
                              if (ht1[myEnum.Key]!=ht2[myEnum.Key])
                              {
                                    isSame = false;
                                    break;
                              }                              
                        }
                        else
                        {
                              isSame = false;
                              break;
                        }

                  Console.WriteLine("Hashtables ht1 & ht2 are {0}the same", (isSame)?"":"NOT ");
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
This article aims to explain the working of CircularLogArchiver. This tool was designed to solve the buildup of log file in cases where systems do not support circular logging or where circular logging is not enabled
This Micro Tutorial hows how you can integrate  Mac OSX to a Windows Active Directory Domain. Apple has made it easy to allow users to bind their macs to a windows domain with relative ease. The following video show how to bind OSX Mavericks to …
In a recent question (https://www.experts-exchange.com/questions/28997919/Pagination-in-Adobe-Acrobat.html) here at Experts Exchange, a member asked how to add page numbers to a PDF file using Adobe Acrobat XI Pro. This short video Micro Tutorial sh…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question