private static bool ItemBase_DeepEquals(SettingItem item1, SettingItem item2) { if (item1 == null || item2 == null) { return(item1 == null && item2 == null); } if (!item1.Equals(item2)) { return(false); } if (item1.Attributes.Count == item2.Attributes.Count) { return(item1.Attributes.OrderedEquals(item2.Attributes, data => data.Key, StringComparer.OrdinalIgnoreCase)); } return(false); }