Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
IEnumerable-Schnittstelle
Macht den Enumerator verfügbar, der eine einfache Iteration durch eine nicht generische Auflistung unterstützt.
Assembly: mscorlib (in mscorlib.dll)
Der IEnumerable-Typ macht die folgenden Member verfügbar.
| Name | Beschreibung | |
|---|---|---|
|
GetEnumerator | Gibt einen Enumerator zurück, der eine Auflistung durchläuft. |
| Name | Beschreibung | |
|---|---|---|
|
AsParallel | Ermöglicht die Parallelisierung einer Abfrage. (Durch ParallelEnumerable definiert.) |
|
AsQueryable | Konvertiert einen IEnumerable in einen IQueryable. (Durch Queryable definiert.) |
|
Cast<TResult> | Konvertiert die Elemente eines IEnumerable in den angegebenen Typ. (Durch Enumerable definiert.) |
|
OfType<TResult> | Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs. (Durch Enumerable definiert.) |
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 * */
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.