c# - 添加范围然后查找重复项或检查每个项目的冲突是否更快?

标签 c# mono xamarin.ios

(注意:我已经标记了这个 C#,但我使用的是 Monotouch,所以它的行为可能会有所不同,我不太确定)

这是我的场景: 我有一个在我的应用程序中持续存在的列表,它保存了整个对象列表。然后,我过滤这些数据(通过应用程序中的用户选择)并显示适当的项目。

通过调用网络服务来更新列表,我执行此操作的方式如下:

HandleWebServiceComplete(object sender, ItemRetreivedEventArgs e)
{
    // snip - error handling above this

    if (e.Result != null)
    {
        foreach (var item in e.Result)
        {
            if (!mainList.Contains(item))
                mainList.Add(item);
        }

        RefreshDisplayList(mainList);
    }
}

很明显,这会检查网络服务返回的每个项目,以检查它是否已存在于列表中(在某些情况下可能存在) - 所以我的问题是,使用 List.AddRange() 会更好吗之后检查列表中的重复项还是继续我已经要去的方式?

最佳答案

我绝对不会添加范围然后删除重复项,因为每次删除都会触发后备数组的重建。你这样做的方式很好。我认为您目前实际上没有遇到性能问题。

关于c# - 添加范围然后查找重复项或检查每个项目的冲突是否更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7335818/

相关文章:

c# - 使用 InternalsVisibleTo 测试私有(private)成员

postgresql - SqlDataProvider 无法解析解析路径

c# - C# Hello World 不编译

ios - TinyIoC、Xamarin.iOS、链接器设置

ios - 如何使用 Xamarin iOS PickView 获取值?

c# - 使用带有客户端 key 的 Azure AD 通过 asp.net core 后端对 native 应用程序进行身份验证

c# - 预期的C#语法错误值

c# - MVC3 单_ViewStart

c - 在 c 和 mono 之间传递(函数)指针

xamarin.ios - xamarin.ios 中的 UITabBarController 不使用 StoryBoard