gpt4 book ai didi

c# - ICollection.Contains 自定义类型

转载 作者:太空狗 更新时间:2023-10-29 17:50:09 24 4
gpt4 key购买 nike

如果我有一个(引用 - 这有关系吗?)类型 MyType 不会覆盖 Equals 方法,在确定 ICollection 包含类型的给定实例?

使用我自己的启发式方法的最佳方法是什么(例如,检查 Id 属性值是否相等)?

最佳答案

因为您的类型没有覆盖 Equals,所以将使用 Equals 的默认实现,即引用相等。因此,如果集合包含那个实例,Contains 将为真。

要使用您自己的比较,请实现 IEqualityComparer<T> (例如比较 ID)并将比较器的实例传递给 Contains 方法。 (这假定您能够使用 LINQ 扩展,因为“ native ”ICollection<T>.Contains 方法没有 IEqualityComparer 重载。)

关于c# - ICollection<T>.Contains 自定义类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2143815/

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