本文介绍使用 List<T>.Find时的性能见解。
原因
List<T>.Find 方法导致性能缓慢。
性能见解说明
该方法 List<T>.Find 通过列表执行线性搜索,从而为每个查找生成 O(n) 时间复杂性。 在频繁搜索项目或大型列表中时,这可能效率低下。
如果可能,请考虑使用 Dictionary<TKey,TValue> 或使用 HashSet<T>。 如果可以为值分配键或唯一属性, Dictionary<TKey,TValue> 则可以使用。 如果要存储唯一值, HashSet<T> 可以使用。 与 O(n) 相比,这两种替代数据结构在每次查找时都有 O(1) List<T>.Find时间复杂性。
如何调查警告
在 CPU 使用情况工具中,单击“ 查看源代码 ”以查找使用位置 List<T>.Find 。 如果可能,重构代码以使用具有更快查找的替代数据结构。