Exposes an enumerator, which supports a simple iteration over a non-generic collection.
To browse the .NET Framework source code for this type, see the Reference Source.
Assembly: mscorlib (in mscorlib.dll)
Overloaded. Enables parallelization of a query.(Defined by ParallelEnumerable.)
Casts the elements of an Enumerable.)to the specified type.(Defined by
Filters the elements of an Enumerable.)based on a specified type.(Defined by
To view the .NET Framework source code for this type, see the Reference Source. You can browse through the source code online, download the reference for offline viewing, and step through the sources (including patches and updates) during debugging; see instructions.
System.Collections.Generic.IEnumerable<'T>. contains a single method, GetEnumerator, which returns an IEnumerator. IEnumerator provides the ability to iterate through the collection by exposing a Current property and MoveNext and Reset methods.is the base interface for all non-generic collections that can be enumerated. For the generic version of this interface see
It is a best practice to implement IEnumerator on your collection classes to enable the foreach (For Each in Visual Basic) syntax, however implementing is not required. If your collection does not implement , you must still follow the iterator pattern to support this syntax by providing a GetEnumerator method that returns an interface, class or struct. When using Visual Basic, you must provide an IEnumerator implementation, which is returned by GetEnumerator. When developing with C# you must provide a class that contains a Current property, and MoveNext and Reset methods as described by IEnumerator, but the class does not have to implement IEnumerator.and
The following code example demonstrates the best practice for iterating a custom collection by implementing the IEnumerator interfaces. In this example, members of these interfaces are not explicitly called, but they are implemented to support the use of foreach (For Each in Visual Basic) to iterate through the collection. This example is a complete Console app. To compile the Visual Basic app, change the Startup object to Sub Main in the project’s Properties page.and
For a sample that shows how to implement the Implementing the IEnumerable Interface in a Collection Classinterface, see
Available since 8
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Available since 8.1