更改.NET通用字典中的顺序

Pau*_*els 2 c# generics

我有一个继承自泛型字典的类,如下所示:

Class myClass : System.Collections.Generic.Dictionary<int, Object>
Run Code Online (Sandbox Code Playgroud)

我已按特定顺序添加了一个值列表,但我现在希望更改该顺序.有没有办法(不删除和重新添加)我可以有效地重新索引值; 所以更改索引1处的对象现在是索引10,例如?例如,这不起作用:

myClass[1].Index = 10;
Run Code Online (Sandbox Code Playgroud)

roc*_*hal 13

查看SortedDictionary类,您可以在其中按键对项目进行排序.

通常,您无法更改Dictionary中项目的索引,因为它违反了原则;-)


Ale*_*x J 13

字典本身没有索引顺序.请考虑继承KeyedCollection类.它是字典和普通列表的合并,它旨在使用项目的成员作为键,并具有索引顺序.


lep*_*pie 5

字典(或更普遍的哈希表)没有索引。这适用于所有语言。