我正在制作一个性能至关重要的视频游戏。
我正在使用 .Distinct() 扩展方法从列表中获取唯一值。
有没有更快的方法呢? (即使这意味着有更多的代码行)
最佳答案
.Distinct
是 O(n)
称呼。
你不能比这更快。
但是,您应该确保您的 GetHashCode
(并且,在较小程度上, Equals
)尽可能快。
根据您的情况,您或许可以更换 List<T>
与 HashSet<T>
,这将防止首先插入重复项。 (还有 O(1)
插入)
然而,在得出关于什么需要更快的结论之前,请始终分析您的代码 .
关于c# - .Distinct() 的更快替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5970983/