IList.Contains(Object) IList.Contains(Object) IList.Contains(Object) IList.Contains(Object) Method

定義

判斷 IList 是否包含特定值。Determines whether the IList contains a specific value.

public:
 bool Contains(System::Object ^ value);
public bool Contains (object value);
abstract member Contains : obj -> bool
Public Function Contains (value As Object) As Boolean

參數

value
Object Object Object Object

要在 IList 中尋找的物件。The object to locate in the IList.

傳回

如果在 IList 中找到 Object,則為 true,否則為 falsetrue if the Object is found in the IList; otherwise, false.

範例

下列範例示範實作IList介面來建立簡單的清單中,固定大小清單。The following example demonstrates the implementation of the IList interface to create a simple list, fixed-size list. 這段程式碼是針對較大範例的一部分IList介面。This code is part of a larger example for the IList interface.

class SimpleList : IList
{
    private object[] _contents = new object[8];
    private int _count;

    public SimpleList()
    {
        _count = 0;
    }

    // IList Members
    public int Add(object value)
    {
        if (_count < _contents.Length)
        {
            _contents[_count] = value;
            _count++;

            return (_count - 1);
        }
        else
        {
            return -1;
        }
    }

    public void Clear()
    {
        _count = 0;
    }

    public bool Contains(object value)
    {
        bool inList = false;
        for (int i = 0; i < Count; i++)
        {
            if (_contents[i] == value)
            {
                inList = true;
                break;
            }
        }
        return inList;
    }

    public int IndexOf(object value)
    {
        int itemIndex = -1;
        for (int i = 0; i < Count; i++)
        {
            if (_contents[i] == value)
            {
                itemIndex = i;
                break;
            }
        }
        return itemIndex;
    }

    public void Insert(int index, object value)
    {
        if ((_count + 1 <= _contents.Length) && (index < Count) && (index >= 0))
        {
            _count++;

            for (int i = Count - 1; i > index; i--)
            {
                _contents[i] = _contents[i - 1];
            }
            _contents[index] = value;
        }
    }

    public bool IsFixedSize
    {
        get
        {
            return true;
        }
    }

    public bool IsReadOnly
    {
        get
        {
            return false;
        }
    }

    public void Remove(object value)
    {
        RemoveAt(IndexOf(value));
    }

    public void RemoveAt(int index)
    {
        if ((index >= 0) && (index < Count))
        {
            for (int i = index; i < Count - 1; i++)
            {
                _contents[i] = _contents[i + 1];
            }
            _count--;
        }
    }

    public object this[int index]
    {
        get
        {
            return _contents[index];
        }
        set
        {
            _contents[index] = value;
        }
    }

    // ICollection Members

    public void CopyTo(Array array, int index)
    {
        int j = index;
        for (int i = 0; i < Count; i++)
        {
            array.SetValue(_contents[i], j);
            j++;
        }
    }

    public int Count
    {
        get
        {
            return _count;
        }
    }

    public bool IsSynchronized
    {
        get
        {
            return false;
        }
    }

    // Return the current instance since the underlying store is not
    // publicly available.
    public object SyncRoot
    {
        get
        {
            return this;
        }
    }

    // IEnumerable Members

    public IEnumerator GetEnumerator()
    {
        // Refer to the IEnumerator documentation for an example of
        // implementing an enumerator.
        throw new Exception("The method or operation is not implemented.");
    }

    public void PrintContents()
    {
        Console.WriteLine("List has a capacity of {0} and currently has {1} elements.", _contents.Length, _count);
        Console.Write("List contents:");
        for (int i = 0; i < Count; i++)
        {
            Console.Write(" {0}", _contents[i]);
        }
        Console.WriteLine();
    }
}
Public Class SimpleList
    Implements IList

    Private _contents(8) As Object
    Private _count As Integer

    Public Sub New()

        _count = 0
    End Sub

    ' IList Members
    Public Function Add(ByVal value As Object) As Integer Implements IList.Add

        If (_count < _contents.Length - 1) Then

            _contents(_count) = value
            _count = _count + 1

            Return (_count - 1)

        Else

            Return -1
        End If
    End Function

    Public Sub Clear() Implements IList.Clear
        _count = 0
    End Sub

    Public Function Contains(ByVal value As Object) As Boolean Implements IList.Contains

        Dim inList As Boolean = False

        Dim i As Integer
        For i = 0 To Count

            If _contents(i) = value Then

                inList = True
                Exit For

            End If

        Next i

        Return inList
    End Function

    Public Function IndexOf(ByVal value As Object) As Integer Implements IList.IndexOf

        Dim itemIndex As Integer = -1

        Dim i As Integer
        For i = 0 To Count

            If _contents(i) = value Then

                itemIndex = i
                Exit For

            End If

        Next i

        Return itemIndex
    End Function

    Public Sub Insert(ByVal index As Integer, ByVal value As Object) Implements IList.Insert

        If (_count + 1) <= (_contents.Length - 1) And (index < Count) And (index >= 0) Then

            _count = _count + 1

            Dim i As Integer
            For i = Count - 1 To index

                _contents(i) = _contents(i - 1)
            Next i

            _contents(index) = value
        End If
    End Sub

    Public ReadOnly Property IsFixedSize() As Boolean Implements IList.IsFixedSize
        Get
            Return True
        End Get
    End Property

    Public ReadOnly Property IsReadOnly() As Boolean Implements IList.IsReadOnly

        Get
            Return False
        End Get
    End Property

    Public Sub Remove(ByVal value As Object) Implements IList.Remove
        RemoveAt(IndexOf(value))
    End Sub

    Public Sub RemoveAt(ByVal index As Integer) Implements IList.RemoveAt

        If index >= 0 And index < Count Then

            Dim i As Integer
            For i = index To Count - 1

                _contents(i) = _contents(i + 1)
            Next i
            _count = _count - 1

        End If
    End Sub

    Public Property Item(ByVal index As Integer) As Object Implements IList.Item

        Get
            Return _contents(index)
        End Get

        Set(ByVal value As Object)
            _contents(index) = value
        End Set
    End Property

    ' ICollection Members

    Public Sub CopyTo(ByVal array As Array, ByVal index As Integer) Implements ICollection.CopyTo
        Dim j As Integer = index
        Dim i As Integer
        For i = 0 To Count
            array.SetValue(_contents(i), j)
            j = j + 1
        Next i
    End Sub

    Public ReadOnly Property Count() As Integer Implements ICollection.Count
        Get
            Return _count
        End Get
    End Property

    Public ReadOnly Property IsSynchronized() As Boolean Implements ICollection.IsSynchronized
        Get
            Return False
        End Get
    End Property

    ' Return the current instance since the underlying store is not
    ' publicly available.
    Public ReadOnly Property SyncRoot() As Object Implements ICollection.SyncRoot
        Get
            Return Me
        End Get
    End Property

    ' IEnumerable Members
    Public Function GetEnumerator() As IEnumerator Implements IEnumerable.GetEnumerator

        ' Refer to the IEnumerator documentation for an example of
        ' implementing an enumerator.
        Throw New Exception("The method or operation is not implemented.")
    End Function

    Public Sub PrintContents()

        Console.WriteLine("List has a capacity of {0} and currently has {1} elements.", _contents.Length - 1, _count)
        Console.Write("List contents:")

        Dim i As Integer
        For i = 0 To Count

            Console.Write(" {0}", _contents(i))
        Next i

        Console.WriteLine()

    End Sub
End Class

備註

從.NET Framework 2.0 開始,這個方法會使用集合的物件EqualsCompareTo上的方法item以判斷項目是否存在。Starting with the .NET Framework 2.0, this method uses the collection's objects' Equals and CompareTo methods on item to determine whether item exists. 在舊版的.NET Framework 中,藉由進行這項判斷EqualsCompareTo方法item參數集合中的物件。In the earlier versions of the .NET Framework, this determination was made by using the Equals and CompareTo methods of the item parameter on the objects in the collection.

適用於