此问题基于之前的帖子https://stackoverflow.com/a/8425200/737076
问题是你如何对词典创建时及其所有孩子和孩子的孩子进行排序。
我在想一个Comparer,但是想得到一些建议。
答案 0 :(得分:4)
无法对字典进行排序。没有像列表或数组那样的索引顺序。但是,您可以使用字典的键并对键进行排序。
List<string> dictionaryKeys = new List<string>(dict.Keys);
dictionaryKeys.Sort();
然后遍历列表,按顺序检索值。
for (i = 0; i < dictionaryKeys.Count; i++)
{
string key = dictionaryKeys[i];
string value = dict[key];
}
这是一种模拟的字典。
对于具有多个级别的词典,您必须遍历所有级别并使用某种逻辑执行此操作。
但是,如果您的目标是排序字典,我确信有更好的方法来存储您的信息,可能是List<class_you_created_to_hold_all_the_information>
:)
答案 1 :(得分:4)
您正在寻找一个SortedDictionary,它实现为二叉搜索树而不是哈希映射。除了以与上一个问题相同的方式实现它之外,您还需要提供一个Comparer来描述如何对您的集合进行排序。
答案 2 :(得分:-1)
使用
SortedDictionary
课程。