包含List <T>的()方法

use*_*312 1 c# contains generic-list

正是这一个类方法分别负责List<T>Contains()操作?

我班上超载了== 但似乎没有效果.

Jon*_*eet 11

它只会调用Equals()- 所有需要被覆盖的(如果你对参考标识比较感到满意,则不会被覆盖).如果类型实现,IEquatable<T>则该实现将优先于一般使用Equals(object).

特别是,从以下文档List<T>.Contains:

此方法使用默认的相等比较器EqualityComparer(T).Default(T列表中的值类型)确定相等性 .

来自EqualityComparer<T>.Default:

Default属性检查type是否T实现 System.IEquatable(T)泛型接口,如果是EqualityComparer(T),则返回 使用该实现的类型.否则返回一个EqualityComparer(T)使用覆盖Object.EqualsObject.GetHashCode提供的覆盖T.

我完全不相信它会用到它GetHashCode.