本文介绍了将计数值添加到字典值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一本词典

I have a dictionary

Dim Dic as dictionary(integer, integer) 
123, 3
345, 21
22, 0
56, 1



我按值排序Dic


I sorted Dic by values

Dim DicSort As List(Of KeyValuePair(Of integer, Integer)) = Dic.ToList 

DicSort.Sort(Function(x, y) y.Value.CompareTo(x.Value))
22, 0
25, 1
123, 3
345, 21



我想删除Dic值并输入索引号(或运行时Dic的当前计数)

就像这样,

22,0

25,1

123,2

345,3



我尝试过:




I want remove Dic values and put index number (or current count of Dic at runtime)
Like as this,
22, 0
25, 1
123, 2
345, 3

What I have tried:

Dim OrderDic = Dic.ToDictionary(Function(x) x.Key, Function(y)  Dic.Values.Count)



但我有这个结果,

22,4

25,4

123,4

345,4


But i have this result,
22, 4
25, 4
123, 4
345, 4

推荐答案

Dim oDict As Dictionary(Of Integer, Integer) = New Dictionary(Of Integer, Integer)
oDict.Add(123, 3)
oDict.Add(345, 21)
oDict.Add(22, 0)
oDict.Add(56, 1)


'sort by key and
'replace values with index of sorted element
oDict = oDict _
	.OrderBy(Function(x) x.Key)	_
	.Select(Function(x, i) New KeyValuePair(Of Integer, Integer)(x.Key, i)) _
	.ToDictionary(Function(kvp) kvp.Key, Function(kvp) kvp.Value) 





祝你好运!



Good luck!


这篇关于将计数值添加到字典值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-20 22:55