首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SortedList没有按键排序 - VB.NET

首先,我们要明确一点,SortedList 是一个排序列表,它会根据添加的顺序自动排序。如果你发现 SortedList 没有按键排序,那么可能是因为你在添加元素时没有按照键的顺序进行添加。

在 VB.NET 中,你可以使用 SortedList 的 Add() 方法来添加元素,并且确保按照键的顺序进行添加。例如:

代码语言:vb
复制
Dim sortedList As New SortedList()
sortedList.Add(1, "One")
sortedList.Add(3, "Three")
sortedList.Add(2, "Two")

在这个例子中,我们按照键的顺序添加了三个元素,因此 SortedList 会自动按照键的顺序进行排序。

如果你需要对已经存在的 SortedList 进行排序,你可以使用 SortedList 的 Sort() 方法。例如:

代码语言:vb
复制
Dim sortedList As New SortedList()
sortedList.Add(1, "One")
sortedList.Add(3, "Three")
sortedList.Add(2, "Two")
sortedList.Sort()

在这个例子中,我们首先添加了三个元素,然后调用了 Sort() 方法对 SortedList 进行排序。

需要注意的是,SortedList 是一个排序列表,因此它的性能可能会受到影响。如果你需要一个非排序列表,但又需要按照键进行排序,可以考虑使用 Hashtable 或 Dictionary 类型。这些类型的性能比 SortedList 更好。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有SortedList,如何快速找到中值

首先我想到的是把所有元素存进一个SortedList里,然后找中值也不是很难的事情。...但是想在SortedList中插入一个元素时间复杂度是O(N),作为一个Hard的题目它不该如此简单,有木有什么办法可以做得更好?...仔细想来我们只是想获得中值或者说最中间的两个数,并不是要给所有数字排序,其他的数字我们不太关心,但是不排序要怎么找到中间的数字呢?...向堆中插入一个元素的时间复杂度是O(logN),是比我们直接使用SortedList要快的。 任何时候我们需要计算中值时只要要用两个堆最顶部的元素来判断就好了。...不过空间复杂度没有变还是O(N),我们还是需要保存每个数字。 趁热打铁我又赶紧来了一道相关的题:给定一个数字数组跟一个数字k,找出这个数组所有大小为k的字数组的中值。

61120
  • 为什么处理排序后的数组比没有排序的快?想过没有

    就比如说这个:“为什么处理排序后的数组比没有排序的快?”...毫无疑问,直观印象里,排序后的数组处理起来就是要比没有排序的快,甚至不需要理由,就好像我们知道“夏天吃冰激凌就是爽,冬天穿羽绒服就是暖和”一样。...排序后,比没有排序要快 Arrays.sort(data); // 测试 long start = System.nanoTime();...未排序的时候,等待结果的时候让我有一种担心:什么时候结束啊?不会结束不了吧? 读者朋友们有没有玩过火炬之光啊?...完全没有办法预测。 对比过后,就能发现,排序后的数据在遇到分支预测的时候,能够轻松地过滤掉 50% 的数据,对吧?是有规律可循的。 那假如说不想排序,又想节省时间,有没有办法呢?

    87610

    C#语言各种集合介绍

    ArrayListEnumeratorSimple Array集合类对应的IEnumerator是 SZArrayEnumerator (这两个类在.net framework类库文档(msdn)中都没有介绍...派生于IEnumerable 它定义了集合类最基本的行为,所有的集合类都实现了这个接口(基接口) 但是它的行为太过基本:主要就是一个Count属性,单独实现它没有太大意义 2)IEnumerable 公开枚举数...但不能预先知道数组的大小,就可以使用ArrayList ArrayList把所有元素都当作object对象引用,因而在访问ArrayList的元素时要进行类型转换 优点:动态改变大小、灵活方便的插入和删除元素、可排序...3)Hashtable 实现了接口:IDictionary、ICollection、IEnumerable 可以向Hashtable中自由添加和删除元素,有些像ArrayList,但没有那么大的性能开销...4)SortedList 实现了接口:IDictionary、ICollection、IEnumerable SortedLIst兼顾了ArrayList和Hashtable的优点,可按键值来排序 5

    62021

    为什么说堆排序没有快速排序快?

    尽管这两种排序算法的时间复杂度都是 O(nlogn),甚至堆排序比快速排序的时间复杂度还要稳定,但是,在实际的软件开发中,快速排序的性能要比堆排序好,这是为什么呢?...(如果没有特殊说明,我下面都是拿大顶堆来讲解)。 1. 往堆中插入一个元素 往堆中插入一个元素后,我们需要继续满足堆的两个特性。...public void removeMax() { if (count == 0) return -1; // 堆中没有数据 a[1] = a[count]; --count; heapify...那如果从 0 开始存储,实际上处理思路是没有任何变化的,唯一变化的,可能就是,代码实现的时候,计算子节点和父节点的下标的公式改变了。...解答开篇 现在我们来看开篇的问题,在实际开发中,为什么快速排序要比堆排序性能好? 我觉得主要有两方面的原因。 第一点,堆排序数据访问的方式没有快速排序友好。 对于快速排序来说,数据是顺序访问的。

    68230

    C#常用的集合类型(ArrayList类、Stack类、Queue类、Hashtable类、SortedList类)

    5.SortedListSortedList类也是键/值对的集合,但与哈希表不同的是这些键/值对是按键排序,并可以按照键和索引访问。...在SortedList中主要使用Add、Remove、RemoveAt三个方法对SortedList进行操作。...Add方法用于将带有指定键和值的元素添加到 SortedList中;Remove方法用于从 SortedList 中移除带有指定键的元素;RemoveAt方法用于移除 SortedList 的指定索引处的元素...示例 SortedList的使用 示例将介绍如何创建一个SortedList,如何添加项、移除项以用如何遍历SortedList。...而且使用foreach语句遍历SortedList对象时,会返回DictionaryEntry对象。该对象将根据Key属性,以排序后的顺序返回

    1.9K20

    Java面试题:如何对HashMap按键排序

    因此,在键或值的基础上排序HashMap是一个很难的面试问题,如果你不知道如何解决的话。下面让我们看看如何解决这个问题。 ? 1. HashMap存储每对键和值作为一个Entry对象。...通过使用这个Entry 对象,我们可以根据值来排序HashMap。 2.创建一个简单的HashMap,并插入一些键和值。 ? 3.从HashMap恢复entry集合,如下所示。 ?...我们将排序这个链表来解决顺序问题。我们之所以要使用链表来实现这个目的,是因为在链表中插入元素比数组列表更快。 ?...5.通过传递链表和自定义比较器来使用Collections.sort()方法排序链表。 ? 6.使用自定义比较器,基于entry的值(Entry.getValue()),来排序链表。...Collections.sort()是一个内置方法,仅排序值的列表。它在Collections类中重载。这两种个方法是 ? 9.现在你已经排序链表,我们需要存储键和值信息对到新的映射中。

    1.9K20

    数据结构基础温故-6.查找(上):基本查找与树表查找

    从表中第一个(或最后一个)记录开始,逐个进行记录的关键字和给定值比较,若某个记录的关键字和给定值相等,则查找成功,找到所查的记录;如果直到最后一个(或第一个)记录,其关键字和给定值比较都不等时,则表中没有所查的记录...需要注意的是:在调用这个方法前,需要确保作为参数的查找表内的关键字已经有序,否则就需要手动调用Array.Sort()方法进行排序。...在.NET中的System.Collections命名空间下,SortedListSortedList两个类是用于存放键值对的集合类,它们的元素存储于线性表中,并按键值进行排序...(2)查询操作对比   两者的查询操作中,时间复杂度都为O(logn),且源码中也没有额外的操作造成性能损失,那么他们在查询操作中性能如何?继续上面一个例子进行测试。...SortedDictionary则是一个二叉排序树,查询效率理论上也是O(logn),但其较有序数组的二分查找效率还是差了一点点。

    75430

    Sweet Snippet 系列之 有序列表

    Remove 操作后不需要重新 Sort): list.Add(value); list.Sort(); 该方案的缺点是时间消耗比较大,每次 Add 操作之后都要执行费时的 Sort 操作 借助平台库中的 SortedList...使用平台库内建的 SortedList,我们可以立即实现有序列表功能,这也应该是我们大部分情况下的选择,稍有缺陷的是,平台库中的 SortedList 需要指定 TKey 和...SortedSet 会有更多的内存消耗,而且也不提供索引形式的访问,不过在插入和删除操作上,他更有时间优势~ 其实我们可以自己封装 基于 List 有序这个前提,每次进行 Add 时,我们可以使用插入排序来添加元素...,这样我们便可以省去之后的 Sort 操作,而 List 本身提供的 BinarySearch(二分查找)功能正好可以帮助我们实现插入排序~ // simple sorted list implementation... { public SortedList(IComparer comparer = null) { m_comparer =

    31210
    领券