IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Recupérer et passer un IEnumerator d'un IEnumerable à un autre


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Par défaut Recupérer et passer un IEnumerator d'un IEnumerable à un autre
    Bon je refait un sujet pour ce problème spécifique

    L'interface d'un IEnumerable permet de récupérer un IEnumerator.
    Quelqu'un sait il comment procéder pour extraire et passer un IEnumerator d'un IEnumerable à un autre ?

    Merci pour vos lumières

  2. #2
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    ??

    Je ne suis pas sur de comprendre ton problème!

    Tu veux faire koi ?
    IEnumerator de machin = IEnumerator de truc ?

    Je ne sais pas si c possible.

    En tout cas tu peux essayer de créer un objet de type IEnumerator et d'y stocker l'énumérateur d'un autre objet.

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Par défaut
    Oui voilà ça ça marche pas.

    Cas de figure concret :
    string[] toto = new string[] {"A", "B", "C" };
    object toto2 = Activator.CreateInstance(typeof(string[]));

    J'aimerai aider toto2 a apprendre l'alphabet

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Citation Envoyé par GSXRider Voir le message
    Oui voilà ça ça marche pas.

    Cas de figure concret :
    string[] toto = new string[] {"A", "B", "C" };
    object toto2 = Activator.CreateInstance(typeof(string[]));

    J'aimerai aider toto2 a apprendre l'alphabet
    Comprends pas ton exemple ou est ce que tu récupères l'IEnumerator ?

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 163
    Par défaut
    Justement je veux le passer donc pour le moment je ne sait pas comment faire.
    La méthode GetEnumerator ne fourni pas de pointeur..

    Je te montre juste le contexte d'utilisation : le string[] pourrait être un List<string> ou un Arraylist etc...

    Maintenant mon but est de récupérer un IEnumerator d'un objet, et de le passer à un autre IEnumerable sans savoir son type.. en passant par des pointeurs ou non suivant le type de type (string[] || maclasse[])

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Les pointeurs ne peuvent être utilisé qu'en code non managé.
    Sinon pas accés, tu as les delegate pour les remplacer.

    D'après le code de la faq que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    IDictionary env = Environment.GetEnvironmentVariables();
    // Pour afficher une variable dont on connait le nom
    Console.WriteLine("USERNAME = {0}", env["USERNAME"]);
    // Pour lister toutes les variables
    IEnumerator en = env.Keys.GetEnumerator();
    while (en.MoveNext())
        Console.WriteLine("{0} = {1}", en.Current, env[en.Current()]);
    On peut constater que GetEnumerator te renvois un IEnumerator.

    Après pour remplacer un existant par un autre cela n'a pas l'air d'être simple, peut être y arriveras tu à l'aide de ces liens :
    http://www.codeproject.com/KB/recipe...select=1146880
    http://msdn2.microsoft.com/fr-fr/lib...le(VS.80).aspx
    http://msdn.microsoft.com/msdnmag/is...lt.aspx?loc=fr

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Citation Envoyé par GSXRider Voir le message
    Oui voilà ça ça marche pas.

    Cas de figure concret :
    string[] toto = new string[] {"A", "B", "C" };
    object toto2 = Activator.CreateInstance(typeof(string[]));

    J'aimerai aider toto2 a apprendre l'alphabet
    Tu veux passer la liste d'items de toto à toto2 en gros ?

    Il n'y a pas de sens à passer un enumerator d'un container à un autre, ce dernier etant specifique à une collection. Tu peux essayer ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
                string[] toto = new string[] { "A", "B", "C" };
                string[] toto2 = (string[])Array.CreateInstance(typeof(string), toto.Length);
     
                for (int i = 0; i < toto.Length; i++)
                {
                    toto2[i] = toto[i];
                }
     
                //Ou mieux
                string[] toto3 = (string[])toto.Clone();
    A noter qu'on utilise le static CreateInstance de Array pour créer des tableau au runtime.

Discussions similaires

  1. Passer la valeur d'un champ à un autre
    Par tets88 dans le forum Access
    Réponses: 3
    Dernier message: 16/03/2006, 16h09
  2. [C#]Comment passer un parametre d une Form à l'autre ?
    Par ToxiZz dans le forum Windows Forms
    Réponses: 9
    Dernier message: 08/02/2006, 12h28
  3. Réponses: 6
    Dernier message: 08/01/2006, 16h26
  4. passer une variable d'une fonction à une autre
    Par Psyion dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/12/2005, 16h01
  5. Réponses: 2
    Dernier message: 04/10/2005, 20h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo