Export (0) Print
Expand All

IList.IndexOf Method

Determines the index of a specific item in the IList.

Namespace:  System.Collections
Assembly:  mscorlib (in mscorlib.dll)

int IndexOf(
	Object value
)

Parameters

value
Type: System.Object
The Object to locate in the IList.

Return Value

Type: System.Int32
The index of value if found in the list; otherwise, -1.

The following example demonstrates the implementation of the IList interface to create a simple list, fixed-size list. 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(System.Windows.Controls.TextBlock outputBlock)
   {
      outputBlock.Text += String.Format("List has a capacity of {0} and currently has {1} elements.", _contents.Length, _count) + "\n";
      outputBlock.Text += "List contents:";
      for (int i = 0; i < Count; i++)
      {
         outputBlock.Text += String.Format(" {0}", _contents[i]);
      }
      outputBlock.Text += "\n";
   }
}


Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

Community Additions

ADD
Show:
© 2014 Microsoft