List.Remove是否找到确切的对象或只是一个类似的对象?

时间:2014-07-24 03:29:34

标签: c# list

我正在通过MSDN查看它并不是很清楚。我有一个列表,我需要确保删除的T对象是我想要删除的确切对象,否则我希望该方法返回一些表示false的东西。

2 个答案:

答案 0 :(得分:2)

  

如果类型T实现IEquatable泛型接口,则相等比较器是该接口的Equals方法;否则,默认的相等比较器是Object.Equals。

来自msdn

基本上这意味着如果你的对象实现IEquality接口,它将删除你传递给remove方法的实例,如果它在列表中。例如,我的意思是确切的对象 - 您传递给删除的内容指向与列表中的条目相同的内存位置

答案 1 :(得分:0)

它取决于对象和对象实现的Equals方法。 http://msdn.microsoft.com/en-us/library/cd666k3e(v=vs.110).aspx

在某些情况下,您可能必须覆盖Equals以确保获得预期的结果。