private void CompareEvents() { IEnumerable <string> referenceEvents = GetEvents(ReferenceType).ToList(); IEnumerable <string> newEvents = GetEvents(NewType).ToList(); // missing event foreach (string @event in referenceEvents.Except(newEvents)) { ComparerResult.AddRemovedItem(ResultContext.Event, @event, Severity.Error); } // new event foreach (string @event in newEvents.Except(referenceEvents)) { ComparerResult.AddAddedItem(ResultContext.Event, @event, Severity.Warning); } // equal events foreach (string @event in newEvents.Intersect(referenceEvents)) { ComparerResult.AddComparerResult(ComparerContext.CreateComparer(ReferenceType.GetEvent(@event), NewType.GetEvent(@event)).Compare()); } }