コード例 #1
0
        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);
        }