1

这个问题是基于以前的帖子https://stackoverflow.com/a/8425200/737076

问题是您将如何对创建后的 Dictionary 及其所有子项和子项的子项进行排序。

我正在考虑一个比较器,但想得到一些建议。

4

3 回答 3

4

您正在寻找实现为二叉搜索树而不是哈希图的SortedDictionary 。除了以与上一个问题相同的方式实现它之外,您还需要提供一个比较器来描述如何对您的集合进行排序。

于 2012-04-18T01:08:28.567 回答
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>:)

于 2012-04-18T00:55:46.063 回答
-1

使用 SortedDictionary类。

于 2012-04-18T01:37:22.033 回答