gpt4 book ai didi

c# - equals 和 ID 比较之间的性能差异

转载 作者:太空宇宙 更新时间:2023-11-03 19:04:33 24 4
gpt4 key购买 nike

obj.equals(obj2)object.ID == obj2.ID 之间有性能差异吗?我的理解是,等号会比 ID 之间的比较慢,尤其是当数据集较大时,以及当我使用类似 LINQ 语句的东西来查找一项时

例子:

class Person {
int Id,
string Name
}

Person a = new Person (1,"Steve");
Person b = new Person (2,"Peter");

//Scenario 1
if (a.equals(b)) {Console.WriteLine("True");}

//Scenario 2
if (a.Id == b.Id) {Console.WriteLine("True");}

最佳答案

这完全取决于您的 Equals 方法是如何实现的。如果您不覆盖它,默认行为是比较引用,因此具有相同 ID 的两个不同实例将不会被视为相等。所以这不仅仅是一个性能问题,也是一个正确性问题。

现在,假设您实现了 Equals 以便它比较两个实例的 ID:它会比直接比较 ID 慢一点(因为调用虚拟方法的开销),但是差异可能太小而无法察觉。

关于c# - equals 和 ID 比较之间的性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30386222/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com