我想弄清楚何时以及为什么要使用Dictionary或HashTable.我在这里做了一些搜索,发现有人在谈论字典的一般优点,我完全赞同,这导致拳击和拆箱优势,以获得轻微的性能提升.
但是我也读过字典并不总是按照它们插入的顺序返回对象,它被排序的东西.作为HashTable的地方.据我了解,这导致HashTable在某些情况下更快.
我的问题是,这些情况可能是什么?我上面的假设我错了吗?你可以用什么情况来选择一个在另一个之上,(是的,最后一个有点含糊不清).
可能重复:
为什么Dictionary优先于C#中的哈希表?
Dictionary和Hashtable有什么区别.如何决定使用哪一个?
我想问你在C#中实现缓存的最佳方法是什么?是否有可能使用给定的.NET类或类似的东西?也许类似于字典会删除一些条目,如果它变得太大,但哪些条目不会被垃圾收集器删除?
鉴于此powershell代码:
$drivers = New-Object 'System.Collections.Generic.Dictionary[String,String]'
$drivers.Add("nitrous","vx")
$drivers.Add("directx","vd")
$drivers.Add("openGL","vo")
Run Code Online (Sandbox Code Playgroud)
是否可以直接初始化此字典而无需调用Add方法.像.NET一样允许你这样做吗?
像这样的东西?
$foo = New-Object 'System.Collections.Generic.Dictionary[String,String]'{{"a","Alley"},{"b" "bat"}}
Run Code Online (Sandbox Code Playgroud)
[不确定这会涉及什么类型的语法]
在C#中我发现自己使用一个List<T>,IList<T>或IEnumerable<T>的99%的时间.是否有一种情况,使用a HashTable(或Dictionary<T,T>2.0及以上)比这些更好?
编辑:
正如所指出的那样,有人想对这个集合做什么通常会决定一个人应该使用什么,所以你何时会使用Hashtable/ Dictonary<T,T>over List<T>?
我在代码中使用Dictionary但我的同事使用Hashtable.MSDN表示他们在密钥值对上工作,Hashtable和字典的例子在MSDN上是相同的.
那么它们彼此之间有多么不同?哪种是最好的还是适合不同的场合?
我正在尝试存储一组对象,我需要能够根据对象的特定属性在恒定时间内访问它们.我希望通过将对象添加到HashMap并使用我想要索引的属性作为键来实现此目的.在VB中是否有像HashMap对象,或者我应该使用其他东西?
更新:使用VB 2010,.NET 4
干杯
我正在写一个性能至关重要的服务,我不确定什么是最快的.我有几个对象(50-200),每个对象都有一个ID(整数,例如84397或23845).拥有一个Dictionary,一个KeyValue对列表或一个列表,其中索引设置为ID,其余的具有空值或具有相同想法的数组会更快吗?
我需要在C#中存储4000字符串的固定大小(8-char),但我不知道在添加和检索项目的空间和时间方面最好用什么:Bloom过滤器,哈希表或字典?如果有人可以帮助我
Dictionary和Hashtable有什么区别.我怎样才能得出哪些结论可以使用?有人可以帮帮我吗?
c# ×8
.net ×5
dictionary ×4
collections ×3
hashtable ×2
arrays ×1
caching ×1
hashmap ×1
key-value ×1
list ×1
powershell ×1
vb.net ×1