List<tinyClass> ids = new List<tinyClass();
ids.Add(new tinyClass(1, 2));
bool b = ids.IndexOf(new tinyClass(1, 2)) >= 0; //true or false?
如果按值比较,则应返回 true;如果通过引用,它将返回 false。
如果它通过引用进行比较,并且我将tinyClass设置为一个结构 - 这会有所不同吗?
来自 MSDN:
此方法使用默认的相等比较器 EqualityComparer 来确定相等性。T 的默认值是列表中值的类型。
Default 属性检查类型 T 是否实现 System.IEquatable 泛型接口,如果是,则返回使用该实现的 EqualityComparer。否则,它返回一个 EqualityComparer,它使用 T 提供的 Object.Equals 和 Object.GetHashCode 的重写。
它似乎使用 Equals 方法,除非存储的类实现 IEquatable 接口。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)