public static IDictionary <string, string> ParseDimensions(string dimensions) { var dimensionsMap = new SortedDictionary <string, string>(); var commaSeparatedDimensions = dimensions.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries); foreach (var commaSeparated in commaSeparatedDimensions) { var keyValues = commaSeparated.Split(new[] { '=' }, StringSplitOptions.RemoveEmptyEntries); if (keyValues.Length != 2) { MetricsManager.ReportError("Invalid dimension key=value pair format"); return(new Dictionary <string, string>()); } var key = keyValues[0].Trim().ToLower(); var val = keyValues[1].Trim(); if (IsValidName(key) && IsValidName(val)) { dimensionsMap.AddOrUpdate(key, val); } else { MetricsManager.ReportError("Invalid dimension key or value pair " + key + "=" + val); return(new Dictionary <string, string>()); } } return(dimensionsMap); }