ReadOnlyCollection<T>.Items Property
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Returns the IList<T> that the ReadOnlyCollection<T> wraps.
Assembly: mscorlib (in mscorlib.dll)
Property Value
Type: System.Collections.Generic.IList<T>The IList<T> that the ReadOnlyCollection<T> wraps.
Retrieving the value of this property is an O(1) operation.
Notes to InheritorsThis property is provided to allow direct access to members of the IList<T> that the ReadOnlyCollection<T> hides.
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" "" */