public static string FormatStatistics(DescriptiveStatistics value) { string s = $"{value.Count}," + $"{value.Mean.ToString(CultureInfo.InvariantCulture)}," + $"{value.Minimum.ToString(CultureInfo.InvariantCulture)}," + $"{value.Maximum.ToString(CultureInfo.InvariantCulture)},"; if (value.From.HasValue) { s += $"{value.From.Value.ToUniversalTime():o}"; } s += ","; if (value.To.HasValue) { s += $"{value.To.Value.ToUniversalTime():o}"; } s += ","; if (value.StdDev.HasValue) { s += value.StdDev.Value.ToString(CultureInfo.InvariantCulture); } s += ","; if (value.Median.HasValue) { s += value.Median.Value.ToString(CultureInfo.InvariantCulture); } return(s); }
public static DescriptiveStatistics ParseStatisticsValue(string value) { string[] values = value.Split(','); if (values != null && values.Length == 8) { DescriptiveStatistics stats = new DescriptiveStatistics(); stats.Count = int.Parse(values[0]); stats.Mean = double.Parse(values[1], CultureInfo.InvariantCulture); stats.Minimum = double.Parse(values[2], CultureInfo.InvariantCulture); stats.Maximum = double.Parse(values[3], CultureInfo.InvariantCulture); if (values[4] != null && values[4].Length > 0) { stats.From = DateTime.Parse(values[4], CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal); } if (values[5] != null && values[5].Length > 0) { stats.To = DateTime.Parse(values[5], CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal); } if (values[6] != null && values[6].Length > 0) { stats.StdDev = double.Parse(values[6], CultureInfo.InvariantCulture); } if (values[7] != null && values[7].Length > 0) { stats.Median = double.Parse(values[7], CultureInfo.InvariantCulture); } return(stats); } else { throw new ArgumentException("Invalid statistics value: " + value); } }