C#列表<;MyObj>;删除方法
在C#中,我有:C#列表<;MyObj>;删除方法,c#,list,C#,List,在C#中,我有: 公共类MyObj { //方法和性质等。 } List listOfObjects=新列表(); 对象列表。删除(certainObj); 我想知道C#如何知道certainObj在列表中……它在列表中查找certainObj的过程中使用Equals()吗 是,它使用MyObj的Equals(…)方法,如果该方法未被重写,则默认为引用相等 更具体地说,它使用EqualityComparer.Default,这反过来又会查看MyObj是否实现了IEquatable。如果没有,
公共类MyObj
{
//方法和性质等。
}
List listOfObjects=新列表();
对象列表。删除(certainObj);
我想知道C#如何知道certainObj在列表中……它在列表中查找certainObj的过程中使用Equals()吗 是,它使用
MyObj
的Equals(…)
方法,如果该方法未被重写,则默认为引用相等
更具体地说,它使用EqualityComparer.Default
,这反过来又会查看MyObj
是否实现了IEquatable
。如果没有,它将使用myObj.Equals(objectobj)
重载,如果没有被覆盖,它将调用object.ReferenceEquals(…)
。请参阅
此方法使用
默认的相等比较器
EqualityComparer.T的默认值
列表中的值的类型
该方法执行线性搜索;
因此,此方法是O(n)
操作,其中n是计数
是的,请检查MSDN for List类,它在泛型列表的.Contains对象上使用.Equals()方法
public class MyObj
{
// methods and properties etc.
}
List<MyObj> listOfObjects = new List<MyObj>();
listOfObjects.Remove( certainObj );