private void CompareKeys(RegistryKeySnapshotCollection lhs, RegistryKeySnapshotCollection rhs, ChangeType type,
                                 ICollection <ChangeResult> results)
        {
            foreach (RegistryKeySnapshot key in lhs)
            {
                string name;
                RegistryKeySnapshot compare;

                name = key.Name;

                if (rhs == null || !rhs.TryGetValue(name, out compare))
                {
                    results.Add(new ChangeResult(type, key.FullPath));
                }
                else if (type == ChangeType.Insertion)
                {
                    this.CompareKeys(key, compare, results);
                }
            }
        }