一个字典找数的问题

现在有个字典是这样的

Dictionary<decimal,int> keyValuePairs = new Dictionary<decimal, int>();
keyValuePairs.Add(34, 1);
keyValuePairs.Add(56, 6);
keyValuePairs.Add(-5, 7);  
keyValuePairs.Add(7, 7);  
keyValuePairs.Add(6, 7);

如果按照从上往下添加数据导字典 我如何找出倒数最后一个key为正整数的键值对 就是(7, 7)
因为下一个键值对的key的负数了

阅读 2.1k
2 个回答

字典是无序的数据结构,哪有什么“最后一个”?

image.png

https://docs.microsoft.com/zh...

你只能是按某种方式先转换成 List<KeyValuePair<decimal, int>>,才能谈顺序。

新手上路,请多包涵

按我的理解问题就是按序号抓字典?

Dictionary<decimal, int> map = new Dictionary<decimal, int>();
            map.Add(34, 1);
            map.Add(56, 6);
            map.Add(-5, 7);
            map.Add(7, 7);
            map.Add(6, 7);

            decimal x = decimal.Zero;

            // 问的是按序号拉字典?
            List<decimal> keyList = map.Keys.ToList();
            for (Int32 i = 0; i < keyList.Count; i++)
            {
                decimal key = keyList[keyList.Count - i - 1];
                // 你的条件
                if (7M == key /*********/ ) x = key;
            }

            
            // 数量不多的情况
            foreach (var item in map)
            {
                decimal key = item.Key;
                int value = item.Value;
                tbOutput.Text += key.ToString() + "\r\n";
                // 这里写你的条件,我不太明白为啥是7,总之是会逆序查找覆盖就对了。
                if (7M == key /*********/ ) x = key;
            }

            if (decimal.Zero != x) tbOutput.Text += x.ToString() + ": " + map[x].ToString();
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题