yyl
2025-08-05 06da72770c641fabf980816ed466a2280dac2be7
Main/Config/ConfigParse.cs
@@ -105,6 +105,8 @@
        return msg.Split('_');
    }
    //一维数组:来源格式如 1_2|2_3|3_1|4_3;
    //返回一维数组结构如 1|2|3|4
    public static T[] GetKeyValueKeys<T>(string msg) where T : struct
    {
        string[] segs = GetMultipleStr(msg);
@@ -124,6 +126,8 @@
        return null;
    }
    //一维数组:来源格式如 1_2|2_3|3_1|4_3;
    //返回一维数组结构如 2|3|1|3
    public static T[] GetKeyValueValues<T>(string msg) where T : struct
    {
        string[] segs = GetMultipleStr(msg);
@@ -143,6 +147,31 @@
        return null;
    }
    //二维数组:来源格式如 1_2_1|2_3_4|3_1_2|4_3_4
    public static T[][] GetArray2<T>(string msg) where T : struct
    {
        string[] segs = GetMultipleStr(msg);
        if (segs != null && segs.Length > 0)
        {
            T[][] array = new T[segs.Length][];
            for (int i = 0; i < segs.Length; i++)
            {
                string[] pair = GetKeyValue(segs[i]);
                if (pair.Length > 1)
                {
                    array[i] = new T[pair.Length];
                    for (int j = 0; j < pair.Length; j++)
                    {
                        array[i][j] = (T)Convert.ChangeType(pair[j], typeof(T));
                    }
                }
            }
            return array;
        }
        return null;
    }
    //字典:来源格式如 1_2|2_3|3_1|4_3;
    public static Dictionary<T, P> GetDic<T, P>(string msg)
    {
        Dictionary<T, P> dic = null;
@@ -187,31 +216,53 @@
        }
        s = s.Replace(" ", string.Empty);
        if (!userDataRegex.IsMatch(s))
        {
        var dict = JsonMapper.ToObject<Dictionary<string, string[]>>(s);
        if (dict == null || dict.Count == 0)
            return null;
        }
        else
        Dictionary<int, List<int>> result = new Dictionary<int, List<int>>();
        foreach (var item in dict)
        {
            Dictionary<int, List<int>> dics = new Dictionary<int, List<int>>();
            foreach (Match match in userDataRegex.Matches(s))
            List<int> list = new List<int>();
            for (int i = 0; i < item.Value.Length; i++)
            {
                int id = int.Parse(match.Groups[1].Value);
                string str = match.Groups[2].Value;
                string[] vals = str.Split(',');
                List<int> list = new List<int>();
                for (int i = 0; i < vals.Length; i++)
                {
                    int intval = int.Parse(vals[i].Replace('\'', ' '));
                    list.Add(intval);
                }
                if (!dics.ContainsKey(id))
                {
                    dics.Add(id, list);
                }
                list.Add(int.Parse(item.Value[i]));
            }
            return dics;
            if (list.Count != 0)
                result[int.Parse(item.Key)] = list;
        }
        return result;
        //if (!userDataRegex.IsMatch(s))
        //{
        //    return null;
        //}
        //else
        //{
        //    Dictionary<int, List<int>> dics = new Dictionary<int, List<int>>();
        //    foreach (Match match in userDataRegex.Matches(s))
        //    {
        //        int id = int.Parse(match.Groups[1].Value);
        //        string str = match.Groups[2].Value;
        //        string[] vals = str.Split(',');
        //        List<int> list = new List<int>();
        //        for (int i = 0; i < vals.Length; i++)
        //        {
        //            int intval = int.Parse(vals[i].Replace('\'', ' '));
        //            list.Add(intval);
        //        }
        //        if (!dics.ContainsKey(id))
        //        {
        //            dics.Add(id, list);
        //        }
        //    }
        //    return dics;
        //}
    }
    public static Dictionary<int, List<int>> ParseJsonDict(string jsonStr)