On 22.04.2010 19:57, Simon Lindgren wrote:
>       string path = "path";
>       try {

This is a very interesting way of iterating over a dictionary ;)

>               for (IDictionaryEnumerator n = parameters.GetEnumerator(); ;) {
>                       n.MoveNext();
>                       if (((string)n.Value) == "/Page1") {
>                               Console.WriteLine("path.GetHashCode(): {0}", 
> path.GetHashCode());
>                               Console.WriteLine("Key.GetHashCode(): {0}", 
> n.Key.GetHashCode());
>                               Console.WriteLine("Key.Equals(path): {0}", 
> n.Key.Equals(path));
>                               Console.WriteLine("ReferenceEquals(Key, path): 
> {0}", ReferenceEquals(n.Key, path));
>                               Console.WriteLine("Key == path: {0}", n.Key == 
> path);

n.Key == path will always be false here, because String.Equals
will *not* be called.

You must cast n.Key to string:

        (string)n.Key == path

Check your code for similar errors and if you still think you've
found a bug, please file a case in Bugzilla with a self-contained
test case anyone can compile.

Robert

_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to