У меня есть два словаря, содержащих строковый ключ, а затем объект. Объект содержит пять полей. Есть ли элегантный способ обеспечить, чтобы оба словаря сначала содержали одни и те же ключи, а затем, если это правильно, содержат те же пять полей для каждого объекта?
Будут ли два словаря иметь один и тот же встроенный хэш-код или что-то еще?
EDIT, похоже, не работает для следующего кода:
Dictionary<string, MyClass> test1 = new Dictionary<string, MyClass>();
Dictionary<string, MyClass> test2 = new Dictionary<string, MyClass>();
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;
}
это возвращает false?