public bool Equals(IDimensions other) { // TODO: Improve so order doesn't matter if (name != null) { return(name == other.ToString()); } for (int ii = 0; ii < factors.Length; ii++) { if (!factors[ii].Key.Equals(other.Factors[ii].Key) || factors[ii].Value != other.Factors[ii].Value) { return(false); } } return(true); }