c# - 删除列表中项目的最快方法

标签 c# list collections filtering

我有一个 User 对象列表,我必须从列表中删除一个具有特定 UserID 的项目。

此方法必须尽可能快,目前我正在遍历每个项目并检查 ID 是否与 UserID 匹配,如果不匹配,则将行添加到我的 filteredList 集合中。

List allItems = GetItems();

for(int x = 0; x < allItems.Count; x++)
{
    if(specialUserID == allItems[x].ID)
        continue;
    else
        filteredItems.Add( allItems[x] );
}

最佳答案

如果确实必须尽可能快,请使用不同的数据结构。 List 的删除效率并不为人所知。将 ID 映射到用户的字典怎么样?

关于c# - 删除列表中项目的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1349483/

相关文章:

c# - .NET 编译器和 "Not all code paths return a value"

python - 基于唯一键简化字典列表的方法

python - 矩形与矩形列表的碰撞

java - 为什么 trimToSize/ensureCapacity 方法提供 'public' 级别的访问权限?

collections - Ceylon 中 List、Tuple、Sequence、Sequential、Iterable、Array 等的区别

c# - 使用任务更新 GUI

javascript - Kendo Grid C# - 再次选择当前页面而不刷新数据源

c# - 在此上下文中请求不可用 -> 在 Global.asax 中 -> 替换的是什么

python - 错误反转():list is not callable

c# - ConcurrentDictionary.TryRemove() 什么情况下返回false?