System.StringHelper.SplitAsDictionary C# (CSharp) Method

SplitAsDictionary() public static method

拆分字符串成为不区分大小写的可空名值字典。逗号分组,等号分隔
public static SplitAsDictionary ( String value, String nameValueSeparator = "=", String separator = ";", Boolean trimQuotation = false ) : String>.IDictionary
value String 字符串
nameValueSeparator String 名值分隔符,默认等于号
separator String 分组分隔符,默认分号
trimQuotation Boolean 去掉括号
return String>.IDictionary
        public static IDictionary<String, String> SplitAsDictionary(this String value, String nameValueSeparator = "=", String separator = ";", Boolean trimQuotation = false)
        {
            var dic = new NullableDictionary<String, String>(StringComparer.OrdinalIgnoreCase);
            if (value.IsNullOrWhiteSpace()) return dic;

            if (nameValueSeparator.IsNullOrEmpty()) nameValueSeparator = "=";
            //if (separator == null || separator.Length < 1) separator = new String[] { ",", ";" };

            var ss = value.Split(new[] { separator }, StringSplitOptions.RemoveEmptyEntries);
            if (ss == null || ss.Length < 1) return null;

            foreach (var item in ss)
            {
                var p = item.IndexOf(nameValueSeparator);
                if (p <= 0) continue;

                var key = item.Substring(0, p).Trim();
                var val = item.Substring(p + nameValueSeparator.Length).Trim();

                // 处理单引号双引号
                if (trimQuotation)
                {
                    if (val[0] == '\'' && val[val.Length - 1] == '\'') val = val.Trim('\'');
                    if (val[0] == '"' && val[val.Length - 1] == '"') val = val.Trim('"');
                }

                dic[key] = val;
            }

            return dic;
        }

Same methods

StringHelper::SplitAsDictionary ( String value, String nameValueSeparator = "=" ) : String>.IDictionary