private static int FillValues(RelativePosition[] array, RelativePosition[] values, int startingIndex) { foreach (RelativePosition relativePosition in values) { if (relativePosition._values.Length > 0) { startingIndex = RelativePosition.FillValues(array, relativePosition._values, startingIndex); } else { array[startingIndex++] = relativePosition; } } return(startingIndex); }
public RelativePosition(string name, params RelativePosition[] values) { if (values == null) { throw new ArgumentNullException("values"); } if (values.Length > 0) { this._values = new RelativePosition[RelativePosition.CountValues(values)]; RelativePosition.FillValues(this._values, values, 0); } else { this._values = values; } if (name == null || name.Length == 0) { name = this._values.Length <= 0 ? string.Empty : string.Concat((object[])this._values); } this._name = name; }