public DistanceUnit(double magnitude, DistanceUnitName name) { var unit = _units.FirstOrDefault(x => x.Item2 == name); this._unit = unit ?? throw new ArgumentException("name is invalid.", nameof(name)); Magnitude = magnitude; }
public void ConvertTo(DistanceUnitName name) { var unit = _units.FirstOrDefault(x => x.Item2 == name) ?? throw new ArgumentException("name is invalid.", nameof(name)); var currentWeight = Weight; var newWeight = unit.Item3; Magnitude = (currentWeight / newWeight) * Magnitude; _unit = unit; }