首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >索引检索SortedDictionary<>

索引检索SortedDictionary<>
EN

Stack Overflow用户
提问于 2009-09-15 14:00:05
回答 2查看 8.1K关注 0票数 6

我在here上读到,与SortedList不同,SortedDictionary不允许索引检索。那么我如何才能在下面的代码片段中正确地获取nameAddr["C"]呢?

代码语言:javascript
复制
        SortedDictionary<string, string> nameAddr = new SortedDictionary<string, string>();
        nameAddr.Add("X", "29");
        nameAddr.Add("A", "30");
        nameAddr.Add("C", "44");           

        Console.WriteLine(nameAddr["C"]);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-09-15 14:03:45

这是按键索引的。SortedList允许通过“键的索引”进行索引,例如,nameAddr.Values[1]将返回"44“。

(该集合不允许对名称/值对进行索引,只允许分别对KeysValues中的每一个进行索引。)

例如:

代码语言:javascript
复制
var list = new SortedList<string, string>
{
    { "X", "29" },
    { "A", "30" },
    { "C", "44" },
};

Console.WriteLine(list.Keys[1]); // Prints "C"
Console.WriteLine(list.Values[1]); // Prints "44"
票数 8
EN

Stack Overflow用户

发布于 2009-09-15 14:08:57

SortedList在内部使用数组作为存储的数据结构,然后根据需要对数组进行排序,以保持项的顺序。因为它使用数组,所以可以使用数字索引访问项,就像对任何数组一样。

SortedDictionary在内部使用红黑二分搜索树来保持项目的顺序。概念是完全不同的。不存在用于通过数字索引检索项的数组和模拟。您唯一的选择是使用添加到字典中的键值对的键部分。

话虽如此。你的代码在我看来是正确的。这是从字典中检索条目的唯一方法(除了使用Values集合之外,但这也不会为您提供数字索引功能)。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1427362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档