Indexers in .NET

This article explains Indexers in C# .NET with working examples.

Defining an indexer allows you to create classes that act like "virtual arrays." Instances of that class can be accessed using the [] array access operator. Defining an indexer in C# is similar to defining operator [] in C++, but is considerably more flexible. For classes that encapsulate array- or collection-like functionality, using an indexer allows the users of that class to use the array syntax to access the class.


The following example shows how to declare a private array field, myArray, and an indexer. Using the indexer allows direct access to the instance b[i]. The alternative to using the indexer is to declare the array as a public member and access its members, myArray[i], directly.

// cs_keyword_indexers.cs
using System;
class IndexerClass
private int [] myArray = new int[100];
public int this [int index] // Indexer declaration
// Check the index limits.
if (index < 0 || index >= 100)
return 0;
return myArray[index];
if (!(index < 0 || index >= 100))
myArray[index] = value;

public class MainClass
public static void Main()
IndexerClass b = new IndexerClass();
// Call the indexer to initialize the elements #3 and #5.
b[3] = 256;
b[5] = 1024;
for (int i=0; i<=10; i++)
Console.WriteLine("Element #{0} = {1}", i, b[i]);


Author: desifella03 Sep 2004 Member Level: Bronze   Points : 0

Hi Naveen,
Even though the article helped me to recollect what indexers are it doesn't deal with all the info related to indexers(like what are the restrictions on having multiple indexers and why is it a good thing and a real world scenario). It will be nice if you try to make this as comprehensible as possible. Good effort though.

Author: Kamran20 Apr 2005 Member Level: Bronze   Points : 0

can i use indexers in .net frame work 1.1?? & can we use this approach in

  • Do not include your name, "with regards" etc in the comment. Write detailed comment, relevant to the topic.
  • No HTML formatting and links to other web sites are allowed.
  • This is a strictly moderated site. Absolutely no spam allowed.
  • Name: