我需要维护一个非常短暂且频繁上下的连接客户名单。由于潜在的客户端数量,我需要一个支持快速插入/删除的集合。建议?
答案 0 :(得分:29)
答案 1 :(得分:10)
考虑基于哈希的集合,例如: HashSet
,Dictionary
,HashTable
,为添加和删除元素提供恒定的时间性能。
.NET Framework开发人员指南中的更多信息:
答案 2 :(得分:4)
那么,您需要查询多少钱?链接列表具有快速插入/删除(在任何位置),但不像(例如)字典/排序列表那样快速搜索。或者,在每个中具有位/值对的直列表 - 即“仍具有值”。只需在追加之前重新使用逻辑空单元格。删除只清除单元格。
对于参考类型,“null”将在此处执行。对于值类型,Nullable<T>
。
答案 3 :(得分:3)
您可以使用Hashtable或强类型字典&lt; Client&gt;。客户端类可能会覆盖GetHashCode以提供更快的哈希代码生成,或者如果使用Hashtable,您可以选择使用IHashCodeProvider。
答案 4 :(得分:1)
您如何找到客户?是否需要元组/字典?你很可能在Jeffrey Richter的Power Collections库中找到能解决问题的东西,它有列表,树,你可以想到的大多数数据结构。
答案 5 :(得分:1)
Channel9采访Peter Sestoft给我留下了非常深刻的印象:
channel9.msdn.com/shows/Going+Deep/Peter-Sestoft-C5-Generic-Collection-Library-for-C-and-CLI/
他是哥本哈根IT大学的教授,他帮助创建了The C5 Generic Collection Library:
它可能有点矫枉过正,或者它可能只是你正在寻找的快速收藏......
HTH,
-Mike