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
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
??
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.
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![]()
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[])
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 :
On peut constater que GetEnumerator te renvois un IEnumerator.
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()]);
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
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 :
A noter qu'on utilise le static CreateInstance de Array pour créer des tableau au runtime.
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();
Partager