/// <summary>
        /// Deep copies the parameter set.
        /// </summary>
        /// <returns>A deep copy of the parameter set.</returns>
        public ParameterSet Copy()
        {
            var newUnitSets = new ObservableCollection <PasswordUnitSelection>(
                UnitSelections.Select(us => new PasswordUnitSelection(us.UnitSet, us.Bounds)));

            return(new ParameterSet(Length, newUnitSets, IsLegacy));
        }
 public PasswordUnitSelection FirstStartingWith(string substring) => UnitSelections.First(us => us.ID.StartsWith(substring));
 public PasswordUnitSelection this[string id] => UnitSelections.FirstOrDefault(us => us.ID.Equals(id));