Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

IEnumerable-Schnittstelle

Macht den Enumerator verfügbar, der eine einfache Iteration durch eine nicht generische Auflistung unterstützt.

Namespace:  System.Collections
Assembly:  mscorlib (in mscorlib.dll)
[ComVisibleAttribute(true)]
[GuidAttribute("496B0ABE-CDEE-11d3-88E8-00902754C43A")]
public interface IEnumerable

Der IEnumerable-Typ macht die folgenden Member verfügbar.

  Name Beschreibung
Öffentliche Methode Unterstützt von XNA Framework h1x9x1b1.PortableClassLibrary(de-de,VS.100).gif GetEnumerator Gibt einen Enumerator zurück, der eine Auflistung durchläuft.
Zum Seitenanfang
  Name Beschreibung
Öffentliche Erweiterungsmethode AsParallel Ermöglicht die Parallelisierung einer Abfrage. (Durch ParallelEnumerable definiert.)
Öffentliche Erweiterungsmethode h1x9x1b1.PortableClassLibrary(de-de,VS.100).gif AsQueryable Konvertiert einen IEnumerable in einen IQueryable. (Durch Queryable definiert.)
Öffentliche Erweiterungsmethode Unterstützt von XNA Framework h1x9x1b1.PortableClassLibrary(de-de,VS.100).gif Cast<TResult> Konvertiert die Elemente eines IEnumerable in den angegebenen Typ. (Durch Enumerable definiert.)
Öffentliche Erweiterungsmethode Unterstützt von XNA Framework h1x9x1b1.PortableClassLibrary(de-de,VS.100).gif OfType<TResult> Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs. (Durch Enumerable definiert.)
Zum Seitenanfang

Die generische Version dieser Schnittstelle finden Sie unter System.Collections.Generic.IEnumerable<T>.

Hinweise zur Implementierung

IEnumerable muss für eine Unterstützung der foreach-Semantik von Microsoft Visual Basic implementiert sein. COM-Klassen, die Enumeratoren zulassen, implementieren diese Schnittstelle ebenfalls.

Im folgenden Codebeispiel wird die Implementierung der IEnumerable-Schnittstelle und der IEnumerator Schnittstelle für eine benutzerdefinierte Auflistung veranschaulicht. In diesem Beispiel werden Member dieser Schnittstellen nicht explizit aufgerufen, sondern zur Unterstützung der Verwendung von foreach (For Each in Visual Basic) implementiert.


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];
        }
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
       return (IEnumerator) GetEnumerator();
    }

    public PeopleEnum 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;
    }

    object IEnumerator.Current
    {
        get
        {
            return Current;
        }
    }

    public Person 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
 *
 */


.NET Framework

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Unterstützt in:

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Community-Inhalt Hinzufügen
Anmerkungen FAQ