internal override void SetIndex(string name, object value) { if (TrySet(TypedParameters, name, value, (v, t) => this[t.Item1] = value)) { return; } var prop = InternalParameters.Where(p => HasName(p, name)).ToList(); if (prop.Count == 0 && IsLocked()) { throw new InvalidOperationException($"Parameter with name '{name}' does not exist. To add new parameters object must first be unlocked."); } if (IsSensorTarget(value)) { foreach (var obj in prop) { InternalParameters.Remove(obj); } Add(name, value); } else { SetOrAddCustom(prop, name, value); } }
internal bool RemoveInternal(string name, bool ignoreUnderscore) { var toRemove = InternalParameters.Where(p => HasName(p, name, ignoreUnderscore)).ToList(); if (toRemove.Count == 0) { return(false); } foreach (var obj in toRemove) { InternalParameters.Remove(obj); } return(true); }