Сравнение двух словарей в C #

У меня есть два словаря, оба с одинаковой структурой и порядком (один должен быть точной копией другого): 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 в самом словаре?

10
задан sbenderli 20 July 2011 в 14:05
поделиться