This documentation is archived and is not being maintained.

Generics Sample (C#) 

Download sample

This sample shows how to create a custom generic list class with a single type parameter, and how to implement IEnumerable<T> to enable foreach iteration over the contents of the list. The sample also shows how client code creates an instance of the class by specifying a type argument, and how constraints on the type parameter enable additional operations to be performed on the type arguments.

For an example of a generic collection class that implements an iterator block, see How to: Create an Iterator Block for a Generic List (C# Programming Guide).

Security noteSecurity Note

This sample code is provided to illustrate a concept and should not be used in applications or Web sites, as it may not illustrate the safest coding practices. Microsoft assumes no liability for incidental or consequential damages should the sample code be used for purposes other than as intended.

To open the sample file in Solution Explorer

  1. Click Download Sample.

    The File Download message box appears.

  2. Click Open, and on the left column of the zip folder window, click Extract all files.

    The Extraction Wizard opens.

  3. Click Next. You can change the directory that the files will be extracted to, and then click Next again.

    Make sure that the Show extracted files check box is selected, and click Finish.

  4. Double-click the sample's .sln file.

    The sample solution is displayed in Solution Explorer. You might get a security warning that says the solution location is not trusted. Click OK to continue.

To build and run the Generics sample within Visual Studio

  • On the Debug menu, click Start Without Debugging.

To build and run the Generics sample from the command line

  • Type the following at the command prompt:

    csc generics.cs


This sample is provided for demonstration purposes and is not intended to be used without modification in production code. For production quality code, it is strongly recommended that you use the collection classes in the System.Collections.Generic namespace whenever possible.

See Also