gpt4 book ai didi

c# - 词典中使用了哪个 IEqualityComparer?

转载 作者:行者123 更新时间:2023-11-30 14:55:15 25 4
gpt4 key购买 nike

假设我像这样实例化了一个字典

var dictionary  = new Dictionary<MyClass, SomeValue>();

MyClass 是我自己的类,它实现了一个 IEqualityComparer<> .

现在,当我对字典执行操作时 - 例如添加、包含、TryGetValue 等 - 字典是否使用默认值 EqualityComparer<T>.Default因为我从未将其传递给构造函数,还是它使用了 MyClass 实现的 IEqualityComparer?

谢谢

最佳答案

它将使用默认的相等比较器。

如果一个对象能够比较自己与其他对象的相等性,那么它应该实现 IEquatable,而不是 IEqualityComparer。如果一个类型实现了 IEquatable 那么它将被用作 EqualityCOmparer.Default 的实现,后面是 object.Equalsobject .GetHashCode 否则方法。

IEqualityComparer 旨在比较其他 对象的相等性,而不是它本身。

关于c# - 词典中使用了哪个 IEqualityComparer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25853384/

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