public virtual void AddIndependendVariableValues <T>(IVariable variable, IEnumerable <T> values) { if (!Functions.Contains(variable)) { throw new ArgumentOutOfRangeException("variable", "Function is not a part of the store, add it to the Functions first."); } IMultiDimensionalArray variableValuesArray = FunctionValues[Functions.IndexOf(variable)]; bool addingNewValues = variableValuesArray.Count == 0; foreach (T o in values) { if (addingNewValues) { variableValuesArray.Add(o); } else { if (!variableValuesArray.Contains(o)) // TODO: slow, optimize it somehow { variableValuesArray.Add(o); } } } }
public virtual void AddIndependendVariableValues <T>(IVariable variable, IEnumerable <T> values) { ThrowIfVariableNotPartOfStore(variable); IMultiDimensionalArray variableValuesArray = FunctionValues[Functions.IndexOf(variable)]; bool addingNewValues = variableValuesArray.Count == 0; foreach (T o in values) { if (addingNewValues || variable.SkipUniqueValuesCheck) { variableValuesArray.Add(o); } else { if (!variableValuesArray.Contains(o)) // TODO: slow, optimize it somehow { variableValuesArray.Add(o); } } } }
public bool Contains(object value) { return(source.Contains(toSource((TTarget)value))); }