У меня есть два словаря, оба с одинаковой структурой и порядком (один должен быть точной копией другого): Dictionary
и я хочу проверить их равенство с помощью SequenceEqual <>
Сначала я превращаю первый словарь в XML, а затем читаю его, чтобы воссоздать второй. При первоначальном осмотре они оба одинаковы. Каждый объект ICustomeInterface
переопределяет метод Equals должным образом. Чтобы проверить это, я перебираю элементы двух словарей и сравниваю их. Все они равны.
Но когда я вызываю SequenceEqual
: dictionary1.SequenceEqual (dictionary2);
, он возвращает false и методы Equals из ICustomInterface
объекты никогда не вызываются и всегда возвращает false. Однако, если я сделаю это:
for (i = 0; i < firstDictionary.Count; i++)
firstDictionary[i].SequenceEqual(otherSub.ItemSequence[i]);
, все будет работать, как ожидалось, и для каждой строки будет возвращено значение true. Итак, что происходит, когда я просто вызываю SequnceEqual в самом словаре?