Run Code Online (Sandbox Code Playgroud)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作为一个结构 - 这会有所作为吗?
Ore*_*ost 16
来自MSDN:
此方法使用默认的相等比较器EqualityComparer <T> .Default for T(列表中的值的类型)确定相等性.
Default属性检查类型T是否实现System.IEquatable <T>泛型接口,如果是,则返回使用该实现的EqualityComparer <T>.否则返回一个EqualityComparer <T>,它使用由T提供的Object.Equals和Object.GetHashCode的覆盖.
似乎它使用Equals方法,除非存储的类实现IEquatable <T>接口.
| 归档时间: |
|
| 查看次数: |
3846 次 |
| 最近记录: |