加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#反转词典中的项目

发布时间:2020-12-15 20:53:09 所属栏目:百科 来源:网络整理
导读:我正试图在C#中翻译字典中的项目. 我试过了: Dictionarydouble,int dict = new Dictionarydouble,int();...add itmes to it....var v = dict.Reverse() 但是,dict.Reverse()给了我一种IEnumberable.我只是想知道如何才能使它成为一种字典? 提前致谢. 解决
我正试图在C#中翻译字典中的项目.
我试过了:

Dictionary<double,int> dict = new Dictionary<double,int>();
...add itmes to it....
var v = dict.Reverse()

但是,dict.Reverse()给了我一种IEnumberable>.我只是想知道如何才能使它成为一种字典?

提前致谢.

解决方法

字典不是有序数据结构.要使Reverse具有任何实际意义,您需要使用SortedDictionary.您可以通过使用Comparer创建一个与原始数据相反排序的新数据来获得SortedDictionary的反向副本(请参阅 constructor).

var reversed = new SortedDictionary( original,new ReverseKeyComparer() );

请注意,ReverseKeyComparer是该示例的一个虚构类.

另外 – 如果你将Dictionary等同于map或hashtable,你需要知道SortedDictionary有点用词不当.它使用二进制树实现(我认为是Red-Black),其算法复杂度不同于Dictionary的哈希表实现.请参阅各自文档页面的“备注”部分.如果性能至关重要,您可能需要考虑订购是否真正重要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读