Collections Visual C++ .NET

#include "stdafx.h"
#using 
using namespace System;
using namespace System::Collections::Generic;
ref class Reverse : public IComparer{
public:
    virtual int Compare(int x, int y) { return y - x; }
    virtual bool Equals(int x, int y) { return x == y; }
    virtual int GetHashCode(int obj) { return obj.GetHashCode(); }
};
void SortedDictionaryExample(Dictionary^ inDict)
{
    SortedDictionary^ dict = gcnew SortedDictionary(inDict, gcnew Reverse());
    
    SortedDictionary::KeyCollection::Enumerator ^key = dict->Keys->GetEnumerator();
    SortedDictionary::ValueCollection::Enumerator ^value = dict->Values->GetEnumerator();
    while ( key->MoveNext() && value->MoveNext())
    {
        Console::WriteLine("Key = [{0}]\tValue = [{1}]", 
            key->Current, value->Current);
    }
}
void main()
{
    Dictionary^ dict = gcnew Dictionary();
    dict->Add(1,  "One");
    dict->Add(6,  "Six");
    dict->Add(5,  "Five");
    dict->Add(3,  "3");
    dict[3] = "Three";
    dict[7] = "Seven";
        
    SortedDictionaryExample(dict);
    
}