Itérateurs (C#)

Guide de référence du programmeur C# 
Itérateurs (guide de programmation C#) 

Les itérateurs sont une nouvelle fonctionnalité en C# 2.0. Un itérateur est une méthode, un accesseur ou un opérateur get qui vous permet de prendre en charge l'itération foreach dans une classe ou unstruct sans devoir implémenter l'interface IEnumerable dans son intégralité. Il vous suffit plutôt de fournir un itérateur qui parcourt simplement les structures de données dans votre classe. Lorsque le compilateur détecte votre itérateur, il génère automatiquement les méthodes Current, MoveNext et Dispose de l'interface IEnumerable ou IEnumerable.

Vue d'ensemble des itérateurs

  • Un itérateur est une section de code qui retourne une séquence ordonnée de valeurs du même type.

  • Un itérateur peut être utilisé comme corps d'une méthode, d'un opérateur ou d'un accesseur get.

  • Le code d'itérateur utilise l'instruction yield return pour retourner successivement chaque élément. yield break met fin à l'itération. Pour plus d'informations, consultez yield.

  • Plusieurs itérateurs peuvent être implémentés sur une classe. Chaque itérateur doit avoir un nom unique, comme n'importe quel membre de classe ; il peut être appelé par le code client dans une instruction foreach comme suit : foreach(int x in SampleClass.Iterator2){}

  • Le type de retour d'un itérateur doit être IEnumerable, IEnumerator, IEnumerable ou IEnumerator.

Le mot clé yield est utilisé pour spécifier la valeur ou les valeurs retournées. Lorsque l'instruction yield return est atteinte, l'emplacement actuel est stocké. L'exécution redémarrera de cet emplacement la prochaine fois que l'itérateur sera appelé.

Les itérateurs sont particulièrement utiles avec les classes de collection, offrant un moyen pratique d'itérer des structures de données non triviales comme les arbres binaires.

Rubriques connexes

Exemple

Dans cet exemple, la classe DaysOfTheWeek est une classe de collection simple qui stocke les jours de la semaine comme des chaînes. Après chaque itération d'une boucle foreach, la chaîne suivante de la collection est retournée.



C#
public class DaysOfTheWeek : System.Collections.IEnumerable
{
    string[] m_Days = { "Sun", "Mon", "Tue", "Wed", "Thr", "Fri", "Sat" };

    public System.Collections.IEnumerator GetEnumerator()
    {
        for (int i = 0; i < m_Days.Length; i++)
        {
            yield return m_Days[i];
        }
    }
}

class TestDaysOfTheWeek
{
    static void Main()
    {
        // Create an instance of the collection class
        DaysOfTheWeek week = new DaysOfTheWeek();

        // Iterate with foreach
        foreach (string day in week)
        {
            System.Console.Write(day + " ");
        }
    }
}

Sortie

Sun Mon Tue Wed Thr Fri Sat

Spécification du langage C#

Pour plus d'informations, consultez les sections suivantes dans Spécifications du langage C#.

  • 22 Itérateurs

Voir aussi


Ces informations proviennent du site de http://msdn2.microsoft.com
Source de cette page : http://msdn2.microsoft.com/fr-fr/library/dscyy5s0.aspx

Réseaux sociaux

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher les interactions avec les réseaux sociaux sur ces pages.

 

Nuage de mots clés

5 mots clés dont 0 définis manuellement (plus d'information...).

Avertissement

Cette page ne possède pas encore de mots clés manuels, ceci est donc un exemple automatique (les niveaux de pertinence sont fictifs, mais les liens sont valables). Pour tester le nuage avec une page qui contient des mots définis manuellement, vous pouvez cliquer ici.

Vous pouvez modifier vos préférences dans votre profil pour ne plus afficher le nuage de mots clés.

 

Astuce pour imprimer les couleurs des cellules de tableaux : http://www.gaudry.be/ast-rf-450.html
Aucun commentaire pour cette page

© Ce document issu de l′infobrol est enregistré sous le certificat Cyber PrInterDeposit Digital Numbertection. Enregistrement IDDN n° 5329-6822
Document créé le 07/11/06 04:11, dernière modification le Vendredi 17 Juin 2011, 12:11
Source du document imprimé : http://www.gaudry.be/dotnet-rf-dscyy5s0.html Document affiché 6 fois ce mois de Mai.
St.Gaudry©07.01.02
Outils (masquer)
||
Recherche (afficher)
Recherche :

Utilisateur (masquer)
Navigation (masquer)
Apparence (afficher)
Stats (afficher)
15832 documents
452 astuces.
549 niouzes.
3099 definitions.
447 membres.
8115 messages.

Document genere en :
0,63 seconde

Mises à jour :
Mises à jour du site
Citation (masquer)
Le rire est un tranquillisant sans effets secondaires.

Arnold H. Glasgow
 
l'infobrol
Nous sommes le Jeudi 31 Mai 2012, 12:25, toutes les heures sont au format GMT+1.00 Heure, heure d'été (+1)