对 key 对进行排序并可访问的 C# 结构?

标签 c# sorting key

新人在这里。几天来我一直在网上搜索,找不到一个像样的结构来自动排序数据(如 SortedSet),同时仍然允许访问该数据(如 List)。这是我拥有的:

包含 100,000 个节点的列表,定期添加和修改。

List<Nodes> nodes;

节点对象,包含我需要访问/更改的数据

public class Node (string name, int index){ doSomething(); }

我不想含糊其辞,但无法对实际列表进行排序,因为索引是添加节点的历史记录。因此,我想使用一个自动排序 KeyValuePair 对的结构(其中 string 是要排序的名称,int 是在我的节点列表中找到的索引),但我必须能够访问该值.这是我想要做的:

// Add a node to the list, then to the structure
int index = nodes.Count;
nodes.Add(new Node("someName", index));
someStructure.Add("someName", index);

// Give name to structure, which returns int value for use in finding node
node[someStructure.findValueOf("someName"))].doSomething();

这会告诉名为“someName”的节点执行 doSomething();

我确信我遗漏了一些东西。我尝试过使用 SortedSet、SortedList、Dictionary 等。在每种情况下,我都无法检索已排序的对象。如果我找不到它们的位置,自动分类的目的是什么?请帮助我可怜的生活。

最佳答案

您正在寻找一个SortedDictionary

根据文档:表示按键排序的键/值对的集合。虽然,正如一些评论所说,将这 100k 个对象保存在数据库中会更好...

链接:https://msdn.microsoft.com/en-us/library/f7fta44c(v=vs.110).aspx

关于对 key 对进行排序并可访问的 C# 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48715123/

相关文章:

c# - 我怎样才能在C#中将元素插入到队列中

c# - 关闭控制台时调用方法

c# - 在 C# 中使用图像和位图?

c - 快速排序算法实现

python - 如何连接两个csv文件然后通过python排序

用变量形成的 symfony 翻译键

python - 仅更改具有多个值的字典中键的一个值

c# - Wcf 并行和异步调用?

javascript - 如何按正整数或负整数对数组进行排序

json - Kotlin 没有将 "is"作为 json key 的开始