c# - .Distinct() 的更快替代品

标签 c# .net linq

我正在制作一个性能至关重要的视频游戏。

我正在使用 .Distinct() 扩展方法从列表中获取唯一值。
有没有更快的方法呢? (即使这意味着有更多的代码行)

最佳答案

.DistinctO(n)称呼。
你不能比这更快。

但是,您应该确保您的 GetHashCode (并且,在较小程度上, Equals )尽可能快。

根据您的情况,您或许可以更换 List<T>HashSet<T> ,这将防止首先插入重复项。 (还有 O(1) 插入)

然而,在得出关于什么需要更快的结论之前,请始终分析您的代码 .

关于c# - .Distinct() 的更快替代品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5970983/

相关文章:

.net - 任何复制 DebuggerDisplayAttribute 如何生成结果字符串的代码?

C# Linq 数据结构,用于最终的数据绑定(bind)。最好的办法?

c# - IEnumerable OrderBy

c# - 使用 LINQ 过滤 DirectoryInfo 的 ObservableCollection

c# - 如何从数组中查找字符串并将其分配给 c# asp.net 中的字符串

c# - 更新到 MVC5 后找不到/signalr/hubs 404

c# - 如何初始化表单以显示在与默认位置不同的位置,而不会出现移动?

.net - 将AU文件转换为MP3

.net - 使用 DI 传递同一接口(interface)的多个实现

c# - 使用 LINQ C# 递归获取所有子级