.NET - 如果我没有在我的类中实现IComparable,IndexOf如何工作?

Mik*_*ole 0 .net collections

我有一个自定义对象的集合,我正在做IndexOf来查找特定对象的索引.我假设IndexOf将使用IComparable实现来检查对象是否匹配,但我没有在我的类中实现它.

IndexOf如何确定两个对象是否相等?

谢谢!

Jon*_*eet 6

目前还不清楚你要调用哪种类型IndexOf,但大多数集合都不会使用IComparable- 他们只会使用Equals并进行线性搜索.除非您已重写Equals(或实现IEquatable<T>),否则将通过引用标识比较类,并且结构将具有自动生成的相等比较.IComparable将用于类似二进制搜索排序列表的东西.