Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#列表<;MyObj>;删除方法_C#_List - Fatal编程技术网

C#列表<;MyObj>;删除方法

C#列表<;MyObj>;删除方法,c#,list,C#,List,在C#中,我有: 公共类MyObj { //方法和性质等。 } List listOfObjects=新列表(); 对象列表。删除(certainObj); 我想知道C#如何知道certainObj在列表中……它在列表中查找certainObj的过程中使用Equals()吗 是,它使用MyObj的Equals(…)方法,如果该方法未被重写,则默认为引用相等 更具体地说,它使用EqualityComparer.Default,这反过来又会查看MyObj是否实现了IEquatable。如果没有,

在C#中,我有:

公共类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 );