c# - 检查是否存在然后插入 SortedList 的快速方法

标签 c# performance sortedlist

每当我想插入一个 SortedList 时,我都会检查该项目是否存在,然后再插入。这是执行两次相同的搜索吗?一次查看该项目是否存在,然后再次查找该项目的插入位置?有没有一种方法可以优化它以加快速度,或者这只是实现它的方法,无需更改?

if( sortedList.ContainsKey( foo ) == false ){
    sortedList.Add( foo, 0 );
}

最佳答案

您可以将项目添加到 HashSet 和 List,在哈希集中搜索是查看是否必须将值添加到列表的最快方法。

if( hashSet.Contains( foo ) == false ){
    sortedList.Add( foo, 0 );  
    hashSet.Add(foo);
}

关于c# - 检查是否存在然后插入 SortedList 的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13292945/

相关文章:

c# - 如何在 Asp.Net 中获取用户的 AD 用户组?

C# Outlook 加载项获取选定的电子邮件

C# 泛型委托(delegate)类型推断

mysql - 对大型表(有两个左连接表)的查询结果非常慢

一旦项目在集合中,C# ContainsKey 返回 true

python - SortedList 中操作的时间复杂度 - Python

c# - 如何基于属性使用 JSON.NET 序列化枚举?

regex - 有没有办法优化这种灾难性正则表达式回溯的情况?

java - 将 node.js 进程与 java/scala 代码连接起来的最快方法

algorithm - 一种高效的排序列表数据结构