Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source
1 sur 1 ont trouvé cela utile - Évaluez ce sujet

IEnumerable, interface

Expose l'énumérateur, qui prend en charge une itération simple sur une collection non générique.

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

Le type IEnumerable expose les membres suivants.

  NomDescription
Méthode publiquePris en charge par XNA Frameworkh1x9x1b1.PortableClassLibrary(fr-fr,VS.100).gifGetEnumeratorRetourne un énumérateur qui itère au sein d'une collection.
Début
  NomDescription
Méthode d'extension publiqueAsParallelActive la parallélisation d'une requête. (Défini par ParallelEnumerable.)
Méthode d'extension publiqueh1x9x1b1.PortableClassLibrary(fr-fr,VS.100).gifAsQueryableConvertit un IEnumerable en IQueryable. (Défini par Queryable.)
Méthode d'extension publiquePris en charge par XNA Frameworkh1x9x1b1.PortableClassLibrary(fr-fr,VS.100).gifCast<TResult>Convertit les éléments d'un IEnumerable vers le type spécifié. (Défini par Enumerable.)
Méthode d'extension publiquePris en charge par XNA Frameworkh1x9x1b1.PortableClassLibrary(fr-fr,VS.100).gifOfType<TResult>Filtre les éléments d'un IEnumerable en fonction du type spécifié. (Défini par Enumerable.)
Début

Pour la version générique de cette interface, consultez System.Collections.Generic.IEnumerable<T>.

Remarques à l'attention des implémenteurs

IEnumerable doit être implémenté pour prendre en charge la sémantique foreach de Microsoft Visual Basic. Classes COM permettant aux énumérateurs d'implémenter également cette interface.

L'exemple de code suivant illustre l'implémentation des interfaces IEnumerable et IEnumerator pour une collection personnalisée. Dans cet exemple, les membres de ces interfaces ne sont pas appelés explicitement, mais sont implémentés pour prendre en charge l'utilisation de foreach (For Each en Visual Basic) pour itérer au sein de la collection.


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

Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Pris en charge dans :

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Cela vous a-t-il été utile ?
(1500 caractères restants)

Ajouts de la communauté

AJOUTER
© 2013 Microsoft. Tous droits réservés.