Export (0) Print
Expand All

ReadOnlyCollection<T>.Item Property

Gets the element at the specified index.

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

public T this[
	int index
] { get; }

Parameters

index
Type: System.Int32
The zero-based index of the element to get.

Property Value

Type: T
The element at the specified index.

ExceptionCondition
ArgumentOutOfRangeException

index is less than zero.

-or-

index is equal to or greater than Count.

This property provides the ability to access a specific element in the collection by using the following C# syntax: myCollection[index] (myCollection(index) in Visual Basic).

The C# language uses the this keyword to define the indexers instead of implementing the Item property. Visual Basic implements Item as a default property, which provides the same indexing functionality.

Retrieving the value of this property is an O(1) operation.

The following code example demonstrates several members of the ReadOnlyCollection<T> class. The code example creates a List<T> of strings and adds four dinosaur names to it. The code example then wraps the list in a ReadOnlyCollection<T>.

After demonstrating the Count, Contains, Item, and IList.IndexOf members, the code example shows that the ReadOnlyCollection<T> is just a wrapper for the original List<T> by adding a new item to the List<T> and displaying the contents of the ReadOnlyCollection<T>.

Finally, the code example creates an array larger than the collection and uses the CopyTo method to insert the elements of the collection into the middle of the array.


using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

public class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      List<string> dinosaurs = new List<string>();

      dinosaurs.Add("Tyrannosaurus");
      dinosaurs.Add("Amargasaurus");
      dinosaurs.Add("Deinonychus");
      dinosaurs.Add("Compsognathus");

      ReadOnlyCollection<string> readOnlyDinosaurs =
          new ReadOnlyCollection<string>(dinosaurs);

      outputBlock.Text += "\n";
      foreach (string dinosaur in readOnlyDinosaurs)
      {
         outputBlock.Text += dinosaur + "\n";
      }

      outputBlock.Text += String.Format("\nCount: {0}", readOnlyDinosaurs.Count) + "\n";

      outputBlock.Text += String.Format("\nContains(\"Deinonychus\"): {0}",
          readOnlyDinosaurs.Contains("Deinonychus")) + "\n";

      outputBlock.Text += String.Format("\nreadOnlyDinosaurs[3]: {0}",
          readOnlyDinosaurs[3]) + "\n";

      outputBlock.Text += String.Format("\nIndexOf(\"Compsognathus\"): {0}",
          readOnlyDinosaurs.IndexOf("Compsognathus")) + "\n";

      outputBlock.Text += "\nInsert into the wrapped List:" + "\n";
      outputBlock.Text += String.Format("Insert(2, \"Oviraptor\")") + "\n";
      dinosaurs.Insert(2, "Oviraptor");

      outputBlock.Text += "\n";
      foreach (string dinosaur in readOnlyDinosaurs)
      {
         outputBlock.Text += dinosaur + "\n";
      }

      string[] dinoArray = new string[readOnlyDinosaurs.Count + 2];
      readOnlyDinosaurs.CopyTo(dinoArray, 1);

      outputBlock.Text += String.Format("\nCopied array has {0} elements:",
          dinoArray.Length) + "\n";
      foreach (string dinosaur in dinoArray)
      {
         outputBlock.Text += String.Format("\"{0}\"", dinosaur) + "\n";
      }
   }
}

/* This code example produces the following output:

Tyrannosaurus
Amargasaurus
Deinonychus
Compsognathus

Count: 4

Contains("Deinonychus"): True

readOnlyDinosaurs[3]: Compsognathus

IndexOf("Compsognathus"): 3

Insert into the wrapped List:
Insert(2, "Oviraptor")

Tyrannosaurus
Amargasaurus
Oviraptor
Deinonychus
Compsognathus

Copied array has 7 elements:
""
"Tyrannosaurus"
"Amargasaurus"
"Oviraptor"
"Deinonychus"
"Compsognathus"
""
 */


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