c# - 比较方法和比较类之间有什么性能差异吗?

标签 c# sorting generic-collections

性能上有什么区别吗

List<T>.Sort Method (Comparison<T>)

List<T>.Sort Method (IComparer<T>)?

是否存在任何结构(软件架构)优势?

什么时候使用比较方法而不是比较类,反之亦然?

编辑:

List<T>.Sort Method (IComparer<T>)是比较快的。谢谢吉姆·米歇尔!

我的 PC 上的性能差异约为 1%。

似乎比较类是比较快的。

最佳答案

区别在于第一个接受方法(匿名或非匿名),第二个接受比较器对象的实例。有时定义复杂和可定制的比较器类比将所有内容都写在一个函数中更容易。

我更喜欢第一个用于一维的简单排序,而后者用于多维排序,例如数据网格。

使用比较器,您可以拥有私有(private)成员,这通常有助于缓存。这在某些情况下很有用(同样,在对网格中显示的大型数据集进行复杂排序时)。

关于c# - 比较方法和比较类之间有什么性能差异吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15524989/

相关文章:

c# - 如何在 .NET Core 3.1.0 中使用 ACL 在 Mac OS 上管理文件夹权限

c# - 在 C# 中从 gmail 获取通知的最佳方法

javascript - Angular 在顶部加上 ng-repeat 关闭 1

python - numpy 中 argsort() 的用户定义决胜局

c# - 在 C# 中创建自定义泛型列表

c# - 如何使用 C# 在 NovaCode-DocX 中缩进项目符号列表

c# - IEndpointBehavior 生命周期/记录服务调用

sorting - Jenkins 排序方法行为不符合预期

java - "Unchecked generic array creation for varargs parameter of type Matcher <? extends String> []"警告使用 CoreMatchers.allOf()

java - 带有通配符的列表会导致通用巫毒教错误