lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "George Aroush" <geo...@aroush.net>
Subject RE: C#.GetHasCode() and Java.hasCode()
Date Fri, 01 Sep 2006 03:49:40 GMT
Hi folks,

I am posting this on both Lucene.Net list in hope to cover wider audience.

A good number of NUnit tests under Lucene.Net 2.0 are failing due to the way
GetHasCode() is working in C# compared to Java.

The following code in C#:

    System.Collections.ArrayList source = new
System.Collections.ArrayList();
    System.Collections.ArrayList cloned;

    // source.Add("one");  // those two "Add" lines won't make a different
    // source.Add("two");

    cloned = (System.Collections.ArrayList) source.Clone();

    System.Console.WriteLine("source: " + source.GetHashCode());
    System.Console.WriteLine("cloned: " + cloned.GetHashCode());

will giving you back a different hash value for "source" and "cloned" -- but
in Java they will be the same.

My question is the following, is this expected of C# or is my code buggy?
If this is expected of C#, what suggestion do you have to over come this
issue?

The solution I put in is to iterate over the list and get the hash value one
item at a time like so:

    int hashCode = 0;
    for (int i = 0; i < source.Count; i++)
    {
        hashCode += clauses[i].GetHashCode();
    }

Any comment, suggestion?

Regards,

-- George Aroush


Mime
View raw message