public static RateValue StrToRateValue(string value) { var ss = _doubleRege.Split(value).Where(t => { var s = t.Trim(); return(!(s == "," || s == "" || s == ",")); }); string num = ""; string unit = ""; foreach (var s in ss) { if (_doubleRege.IsMatch(s)) { num = s; continue; } if (_unitRegex.IsMatch(s)) { unit = s; continue; } } CodeRateUnits units = CodeRateUnits.sps; var u = unit.ToLower(); if (u == "b" || u == "bp" || u == "sps") { units = CodeRateUnits.sps; } else if (u == "ks" || u == "ksp" || u == "ksps") { units = CodeRateUnits.Ksps ; } else if (u == "ms" || u == "msp" || u == "msps") { units = CodeRateUnits.Msps; } else if (u == "gs" || u == "gsp" || u == "gsps") { units = CodeRateUnits.Gsps; } else if (unit.ToLower().Contains("k")) { units = CodeRateUnits.Ksps; } else if (unit.ToLower().Contains("m")) { units = CodeRateUnits.Msps; } else if (unit.ToLower().Contains("g")) { units = CodeRateUnits.Gsps; } else { units = CodeRateUnits.sps; } if (double.TryParse(num, out double dd)) { return(new RateValue(dd, units)); } return(null); }
public RateValue(double value, CodeRateUnits units) { _value = value; _units = units; }