コード例 #1
0
        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);
        }
コード例 #2
0
 public RateValue(double value, CodeRateUnits units)
 {
     _value = value;
     _units = units;
 }