Exemple #1
0
        public static bool TryParse(string unitName, out Unit result)
        {
            unitName = unitName.ToLower();

            result = __allUnits.SingleOrDefault(
                         unit => unit.Names.Any(
                             name => unitName.Equals(name.Name,
                                                     StringComparison.Ordinal)
                                     ||
                                     unitName.Equals(name.Name + "s",
                                                     StringComparison.Ordinal)
                                     ||
                                     unitName.Equals(name.Symbol,
                                                     StringComparison.Ordinal)
                                     ));

            if (result == null)
                return false;

            return true;
        }
Exemple #2
0
        private static Unit GetCached(
            IEnumerable<KeyValuePair<BaseUnit,int>> exponents)
        {
            var found = __cachedUnits.FirstOrDefault(
                            unit =>
                            unit._baseUnitExponents.All(
                            exponent => exponents.Any(
                                        exponent1 =>
                                        exponent.Key == exponent1.Key)
                                        || exponent.Value == 0)
                            &&
                            exponents.All(
                            exponent => unit[exponent.Key] == exponent.Value));

            if (found != null)
                return found;

            var newUnit = new Unit();
            foreach (var exponent in exponents)
                newUnit[exponent.Key] = exponent.Value;

            return newUnit;
        }
Exemple #3
0
 public static Unit AddName(Unit unit, string name, string symbol,
                            params string[] quantityNames)
 {
     unit._names.Add(new UnitName(name, symbol, quantityNames));
     return unit;
 }
 public UnitsOfMeasurementMismatchException(Unit unitA, Unit unitB)
     : base(string.Format("Units of measurement mismatch: {0} and {1}.",
                         unitA, unitB))
 {
 }
 public MeasuredVector3(Vector3 vector, Unit unit)
 {
     _value = vector;
     _unit = unit;
 }
 private static void CheckUnitsMatch(Unit unitA, Unit unitB)
 {
     if(unitA != unitB)
         throw new UnitsOfMeasurementMismatchException(unitA, unitB);
 }
 public MeasuredVector3 In(Unit unit)
 {
     CheckUnitsMatch(_unit, unit);
     return this;
 }