搜索列表中的特定对象

时间:2013-03-07 13:47:23

标签: c# list contains

我有一个对象列表,我想查看特定对象是否在此列表中。当我在列表中使用Contains()IndexOf()方法时,我会得到不正确的结果,因为这会使用对象的Equals()方法而不是我需要的方法。我想找到一个特定的实例,而不是一个似乎具有相同属性值的对象。

2 个答案:

答案 0 :(得分:3)

如果您希望匹配参考文献,可以使用:

if (object.ReferenceEquals(item1, item2))
    ...

强制它比较参考而不是使用Equals()

或者:

int index = list.FindIndex(item=>ReferenceEquals(item, target));

(有关详细信息,请参阅MSDN Documentation for List.FindIndex()。)

答案 1 :(得分:0)

你能使用哈希码吗?

list.where(w => w.GetHashCode() == object.GetHashCode())