public SnapshotDiff([NotNull] Snapshot before, [NotNull] Snapshot after)
{
#region Sanity checks
if (before == null) throw new ArgumentNullException(nameof(before));
if (after == null) throw new ArgumentNullException(nameof(after));
#endregion
ServiceAssocs = after.ServiceAssocs.GetAddedElements(before.ServiceAssocs);
AutoPlayHandlersUser = after.AutoPlayHandlersUser.GetAddedElements(before.AutoPlayHandlersUser);
AutoPlayHandlersMachine = after.AutoPlayHandlersMachine.GetAddedElements(before.AutoPlayHandlersMachine);
AutoPlayAssocsUser = after.AutoPlayAssocsUser.GetAddedElements(before.AutoPlayAssocsUser);
AutoPlayAssocsMachine = after.AutoPlayAssocsMachine.GetAddedElements(before.AutoPlayAssocsMachine);
FileAssocs = after.FileAssocs.GetAddedElements(before.FileAssocs);
ProtocolAssocs = after.ProtocolAssocs.GetAddedElements(before.ProtocolAssocs);
ProgIDs = after.ProgIDs.GetAddedElements(before.ProgIDs, StringComparer.OrdinalIgnoreCase);
ClassIDs = after.ClassIDs.GetAddedElements(before.ClassIDs, StringComparer.OrdinalIgnoreCase);
RegisteredApplications = after.RegisteredApplications.GetAddedElements(before.RegisteredApplications);
ContextMenuFiles = after.ContextMenuFiles.GetAddedElements(before.ContextMenuFiles);
ContextMenuExecutableFiles = after.ContextMenuExecutableFiles.GetAddedElements(before.ContextMenuExecutableFiles);
ContextMenuDirectories = after.ContextMenuDirectories.GetAddedElements(before.ContextMenuDirectories);
ContextMenuAll = after.ContextMenuAll.GetAddedElements(before.ContextMenuAll);
ProgramsDirs = after.ProgramsDirs.GetAddedElements(before.ProgramsDirs, StringComparer.OrdinalIgnoreCase);
}