[C#]
public virtual bool Contains(
object item
);
参数
-
item
- 要在 ArrayList 中查找的 Object。该值可以为空引用(Visual Basic 中为 Nothing)。
返回值
如果在 ArrayList 中找到 item,则为 true;否则为 false。
实现
IList.Contains
备注
此方法执行线性搜索;因此,平均执行时间与 Count 成正比。即此方法是一种 O(n) 操作,其中 n 为 Count。
此方法通过调用 Object.Equals 确定相等性。
Object.Equals
确定两个Object是否相等,一般情况是重载本函数
using System;
public class MyClass {
public static void Main() {
string s1 = "Tom";
string s2 = "Carol";
Console.WriteLine("Object.Equals(/"{0}/", /"{1}/") => {2}",
s1, s2, Object.Equals(s1, s2));
s1 = "Tom";
s2 = "Tom";
Console.WriteLine("Object.Equals(/"{0}/", /"{1}/") => {2}",
s1, s2, Object.Equals(s1, s2));
s1 = null;
s2 = "Tom";
Console.WriteLine("Object.Equals(null, /"{1}/") => {2}",
s1, s2, Object.Equals(s1, s2));
s1 = "Carol";
s2 = null;
Console.WriteLine("Object.Equals(/"{0}/", null) => {2}",
s1, s2, Object.Equals(s1, s2));
s1 = null;
s2 = null;
Console.WriteLine("Object.Equals(null, null) => {2}",
s1, s2, Object.Equals(s1, s2));
}
}
/*
This code produces the following output.
Object.Equals("Tom", "Carol") => False
Object.Equals("Tom", "Tom") => True
Object.Equals(null, "Tom") => False
Object.Equals("Carol", null) => False
Object.Equals(null, null) => True
*/
Equals 的默认实现仅支持引用相等,但派生类可重写此方法以支持值相等。
对于引用类型,相等定义为对象相等;即这些引用是否引用同一对象。对于值类型,相等定义为按位相等。ValueType 类支持值类型。
在调用 objA.Equals(objB)
前,此方法首先检查两个参数是否均为空引用。