¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
IEnumerable (Interfaz)

IEnumerable (Interfaz)

Expone el enumerador, que admite una iteración simple en una colección no genérica.

Espacio de nombres: System.Collections
Ensamblado: mscorlib (en mscorlib.dll)

[ComVisibleAttribute(true)] 
[GuidAttribute("496B0ABE-CDEE-11d3-88E8-00902754C43A")] 
public interface IEnumerable
/** @attribute ComVisibleAttribute(true) */ 
/** @attribute GuidAttribute("496B0ABE-CDEE-11d3-88E8-00902754C43A") */ 
public interface IEnumerable
ComVisibleAttribute(true) 
GuidAttribute("496B0ABE-CDEE-11d3-88E8-00902754C43A") 
public interface IEnumerable

Para obtener la versión genérica de esta interfaz, vea System.Collections.Generic.IEnumerable.

Notas para los implementadores Debe implementarse IEnumerable para admitir la semántica foreach de Microsoft Visual Basic. Las clases COM que permiten enumeradores también implementan esta interfaz.

En el ejemplo de código siguiente se muestra la implementación de las interfaces IEnumerable y IEnumerator para una colección personalizada. En este ejemplo, no se llama explícitamente a los miembros de estas interfaces, pero se implementan para admitir el uso de foreach (for each en Visual Basic) para recorrer en iteración la colección.

using System;
using System.Collections;

public class Person
{
    public Person(string fName, string lName)
    {
        this.firstName = fName;
        this.lastName = lName;
    }

    public string firstName;
    public string lastName;
}

public class People : IEnumerable
{
    private Person[] _people;
    public People(Person[] pArray)
    {
        _people = new Person[pArray.Length];

        for (int i = 0; i < pArray.Length; i++)
        {
            _people[i] = pArray[i];
        }
    }

    public IEnumerator GetEnumerator()
    {
        return new PeopleEnum(_people);
    }
}

public class PeopleEnum : IEnumerator
{
    public Person[] _people;

    // Enumerators are positioned before the first element
    // until the first MoveNext() call.
    int position = -1;

    public PeopleEnum(Person[] list)
    {
        _people = list;
    }

    public bool MoveNext()
    {
        position++;
        return (position < _people.Length);
    }

    public void Reset()
    {
        position = -1;
    }

    public object Current
    {
        get
        {
            try
            {
                return _people[position];
            }
            catch (IndexOutOfRangeException)
            {
                throw new InvalidOperationException();
            }
        }
    }
}

class App
{
    static void Main()
    {
        Person[] peopleArray = new Person[3]
        {
            new Person("John", "Smith"),
            new Person("Jim", "Johnson"),
            new Person("Sue", "Rabon"),
        };

        People peopleList = new People(peopleArray);
        foreach (Person p in peopleList)
            Console.WriteLine(p.firstName + " " + p.lastName);

    }
}

/* This code produces output similar to the following:
 * 
 * John Smith
 * Jim Johnson
 * Sue Rabon
 * 
 */

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium, Windows Mobile para Pocket PC, Windows Mobile para Smartphone, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition

.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.

.NET Framework

Compatible con: 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 2.0, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft