Export (0) Print
Expand All
4 out of 10 rated this helpful - Rate this topic

Generics and Arrays (C# Programming Guide)

In C# 2.0, single-dimensional arrays that have a lower bound of zero automatically implement IList<T>. This enables you to create generic methods that can use the same code to iterate through arrays and other collection types. This technique is primarily useful for reading data in collections. The IList<T> interface cannot be used to add or remove elements from an array; an exception will be thrown if you attempt to call an IList<T> method such as RemoveAt on an array in this context.

The following code example demonstrates how a single generic method that takes an IList<T> input parameter can iterate through both a list and an array, in this case an array of integers.

class Program
    static void Main()
        int[] arr = { 0, 1, 2, 3, 4 };
        List<int> list = new List<int>();

        for (int x = 5; x < 10; x++)


    static void ProcessItems<T>(IList<T> coll)
        foreach (T item in coll)
            System.Console.Write(item.ToString() + " ");


Even though the ProcessItems method cannot add or remove items, the IsReadOnly property returns false for a T[] within ProcessItems because the array itself was not declared with the ReadOnly attribute.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

© 2014 Microsoft. All rights reserved.