相关疑难解决方法(0)

SortedList和SortedDictionary有什么区别?

a SortedList<TKey,TValue>和a 之间是否有任何实际的区别SortedDictionary<TKey,TValue>?在任何情况下你会专门使用一个而不是另一个吗?

.net c# generics sortedlist sorteddictionary

251
推荐指数
6
解决办法
9万
查看次数

什么时候应该使用sorteddictionary而不是字典

正如我在上一篇文章中写的那样,我对c#世界还是一个新手,所以我写了一个小基准来比较Dictionary,Hashtable,SortedList和SortedDictionary.该测试运行8000次迭代,从50到100000个元素.我测试了添加新元素,搜索元素并循环遍历一些元素.结果就像我预期的那样,除了SortedDictionary的结果,这让我感到很困惑......所有结果都很慢.所以我错过了关于排序字典概念的一些内容.我已经问了谷歌,但我发现的所有其他人都得到了相同的测试结果.根据他们的测试实施略有不同.我的问题再次出现:为什么SortedDicrionary比其他所有人慢得多?

c# benchmarking dictionary sorteddictionary

18
推荐指数
2
解决办法
1万
查看次数

应该更喜欢ImmutableDictionary还是ImmutableSortedDictionary?

我听说.NET System.Collections.Immutable集合是作为平衡二叉树实现的,以便Dictionary通过使用整数值GetHashCode作为排序键来满足它们的不变性约束,甚至传统上模拟散列表的集合.

如果我有一个类型,它是便宜生成一个散列码,以及对于便宜的比较(如stringint),我不关心我收集整理的烦躁,这将是有意义的喜欢ImmutableSortedDictionary,因为底层数据结构是否仍然排序?

.net c# base-class-library immutable-collections

7
推荐指数
2
解决办法
1523
查看次数

为什么 SortedList 上的 foreach() 与 Dictionary 相比内存如此昂贵?

在优化网站时,我尝试使用 Benchmark.Net 对代码进行基准测试。但我惊讶地发现一些基准测试代码使用的内存多了 40,000 倍。经过太多的基准测试后,我发现内存分配是由于对 SortedList<int, int> 进行 foreach 造成的。

using BenchmarkDotNet.Attributes;

namespace NetCollectionsBenchmarks
{
    [MemoryDiagnoser]
    public class CollectionsBenchmarks
    {
        private Dictionary<int, int> DictionaryData = new();
        private SortedList<int, int> SortedListData = new();

        private Dictionary<int, int> DictionaryCheck = new();
        private SortedList<int, int> SortedListCheck = new();

        [GlobalSetup]
        public void Setup()
        {
            for (int x = 0; x < 15; x++)
                this.DictionaryData.Add(x, x);

            this.SortedListData = new SortedList<int, int>(this.DictionaryData);

            this.DictionaryCheck = new Dictionary<int, int>(this.DictionaryData);
            this.SortedListCheck = new SortedList<int, int>(this.DictionaryData);
        }

        [Benchmark(Baseline = true)]
        public …
Run Code Online (Sandbox Code Playgroud)

c# sortedlist

7
推荐指数
1
解决办法
238
查看次数

.NET 4中是否存在二进制搜索树实现?

我正在寻找.NET 4中的内置二进制搜索树实现.有一个吗?

.net binary-tree .net-4.0 data-structures

5
推荐指数
1
解决办法
491
查看次数