private void CompareTypes() { IEnumerable <string> referenceTypes = GetTypeNames(() => ReferenceType.DefinedTypes).ToList(); IEnumerable <string> newTypes = GetTypeNames(() => NewType.DefinedTypes).ToList(); // Missing types foreach (string type in referenceTypes.Except(newTypes)) { ComparerResult.AddRemovedItem(GetItemType(ReferenceType.GetType(type)), type, Severities.TypeRemoved); } // New types foreach (string type in newTypes.Except(referenceTypes)) { ComparerResult.AddAddedItem(GetItemType(NewType.GetType(type)), type, Severities.TypeAdded); } // Equal types foreach (string type in referenceTypes.Intersect(newTypes)) { ComparerResult.AddComparerResult(ComparerContext.CreateComparer(ReferenceType.GetType(type), NewType.GetType(type)).Compare()); } }