Сравнивая два словаря для равных данных в C #?

У меня есть два словаря, содержащие строковый ключ, а затем объект. Объект содержит пять полей. Существует ли элегантный способ обеспечить, чтобы оба словаря сначала содержали одинаковые ключи, а затем, если это правильно, содержали одинаковые пять полей для каждого объекта?

Будет ли в двух словарях одинаковый встроенный хэш-код или что-то в этом роде?

РЕДАКТИРОВАТЬ, неПохоже, что работает для следующего кода:

Dictionary test1 = new Dictionary();
Dictionary test2 = new Dictionary();

MyClass i = new MyClass("", "", 1, 1, 1, 1);
MyClass j = new MyClass("", "", 1, 1, 1, 1);

test1.Add("1", i);
test2.Add("1", j);

bool equal = test1.OrderBy(r => r.Key).SequenceEqual(test2.OrderBy(r => r.Key));

class MyClass
{
    private string a;
    private string b;
    private long? c;
    private decimal d;
    private decimal e;
    private decimal f;

    public MyClass(string aa, string bb, long? cc, decimal dd, decimal ee, decimal ff)
    {
        a= aa;
        b= bb;
        c= cc;
        d= dd;
        e= ee;
        f= ff;
    }

это возвращает ложь?

Ответы на вопрос(5)

Ваш ответ на вопрос