如何补齐词典的键

动作需求 · 337 次浏览
H-D-G 创建于 2023-02-26 15:57

请教一下:如何按顺序(键为正整数)补充2-5中间的键(即3,4),他们的值为开始中断的键的值(即122)
最后得:
{
  "1": "57",
  "2": "122",
  "3": "122",
  "4": "122",
  "5": "192"
}

目前进度:

CL 最后更新于 2023/2/26

H-D-G 2023-02-26 15:57 :

2-5是个例子,实际可能是3-6,10-15...

H-D-G 回复 H-D-G 2023-02-26 16:01 :

也可能会中断两次及两次,1,3,5

H-D-G 回复 H-D-G 2023-02-26 16:01 :

此时需要重新定位

回复内容
H-D-G 2023-02-26 16:08
#1

$=var dict = {dict}.ToDictionary(p=>Convert.ToInt32(p.Key),p=>Convert.ToInt32(p.Value));
    public Dictionary<int, int> test(Dictionary<int, int> dict)
    {
        var keys = dict.Keys.OrderBy(x => x).ToList();
        if (keys.Count == 0) return null;
        int k_max = keys[keys.Count - 1];
        int k_min = keys[0];
        int count = k_max - k_min + 1;
        var new_dict = Enumerable.Range(k_min, count).ToDictionary(x => x, x => 0);
        int j = k_min;
        for (int i = k_min; i <= k_max; i++)
        {
            if (dict.ContainsKey(i))
            {
                j = i;
            }
            new_dict[i] = dict[j];
        }
        return new_dict;
    }
    
    test(dict);

H-D-G 回复 H-D-G 2023-02-26 16:08 :

感谢Cea大佬


H-D-G 最后更新于 2023-02-26 16:12
CL 2023-02-26 16:44
#2

保留原始标题,这样也方便其他人参考哦。

H-D-G 回复 CL 2023-02-26 16:45 :

哦哦,下次注意

回复主贴