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 :

Convertir un objet en IEnumerable


Sujet :

C#

  1. #1
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut Convertir un objet en IEnumerable
    Salut,

    Ça fait quelques jours déjà que je cherche, sans succès évidemment. J'essaie de mettre en place une condition : "si cet objet est un IEnumerable et qu'il est vide alors..."
    Je n'arrive pas à tester si l'objet est vide car je n'arrive pas à le convertir. Je passe donc en argument à la méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    protected override void DoValidate(Object objectToValidate, //...
    dans la condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (objectToValidate.GetType().IsEnum && // ??? )
    Comment puis-je convertir objectToValidate afin de tester objectToValidate.Count()?

    Merci par avance.

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Hello,

    IsEnum n'indique pas si le type est un IEnumerable : il indique si c'est une enum.

    Et pour ce qui est de la conversion, bah un cast ne suffit pas ?

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 203
    Points : 220
    Points
    220
    Par défaut
    Pour tester si l'objet est l'objet est enumerable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    System.Collections.IEnumerable objectenumerable = objectToValidate as System.Collections.IEnumerable;
     
    if (objectenumerable != null)
    {
     
    }

  4. #4
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    Citation Envoyé par Guulh Voir le message
    IsEnum n'indique pas si le type est un IEnumerable : il indique si c'est une enum.
    J'y ai cru, jétais à deux doigts de te comprendre! Peux-tu m'en dire plus?
    Citation Envoyé par Guulh Voir le message
    Et pour ce qui est de la conversion, bah un cast ne suffit pas ?
    En fait, je fais maintenant une conversion en Ilist qui me convient mieux, IEnumerable n'ayant pas de propriété Count.

    Citation Envoyé par matdur Voir le message
    Pour tester si l'objet est l'objet est enumerable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    System.Collections.IEnumerable objectenumerable = objectToValidate as System.Collections.IEnumerable;
     
    if (objectenumerable != null)
    {
     
    }
    Je me suis inspiré de ça en effet, j'ai toujours un même bug que je pensais régler en faisant cela, mais point du tout...

    M'enfin, vous avez répondu à ma question, merci pour vos réponses.

  5. #5
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par franculo_caoulene Voir le message
    J'y ai cru, jétais à deux doigts de te comprendre! Peux-tu m'en dire plus?
    Pour savoir si le type d'un objet implémente une interface, le mot clé "is" est parfait. Il n'y avait pas besoin d'enrichir l'objet System.Type avec une propriété indiquant si le type en question implémente IEnumerable. un if (monObject is IEnumerable) suffit.

    une enum, c'est ça :
    public enum Couleurs { Rouge, Vert, Bleu, RoseAPoixJaunes }
    Rien à voir, donc.

    En fait, je fais maintenant une conversion en Ilist qui me convient mieux
    Oui mais si ton objet n'est pas une IList, bah ton cast marchera pas...

    Mais de toutes façon, faire une méthode qui prend un object en paramètre et qu'on essaie de caster dans tel ou tel type, ça sent pas super bon. Quel est ton contexte ? Tu pourrais faire une surcharge de ta méthode qui prend une IList en paramètre, par exemple.

  6. #6
    Membre émérite Avatar de franculo_caoulene
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 880
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 880
    Points : 2 953
    Points
    2 953
    Par défaut
    J'utilise le Validation Application Block de l'Enterprise Library. Je crée un validateur qui retourne pour tout ce qui est null ou vide. Pas bête le coup de la surcharge, mais je crois que je suis obligé de passer un Object en argument. Je ne trouve pas beaucoup de documentation à ce sujet et pour le moment ça ne trouve "aucune méthode appropriée pour la substitution".

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Convertir un objet
    Par cuber dans le forum Langage
    Réponses: 5
    Dernier message: 30/12/2007, 01h00
  2. Convertire un Objet on List
    Par mouvma dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 20/08/2007, 09h35
  3. Convertir un objet non sérialisable en XML
    Par netdoor.fr dans le forum Persistance des données
    Réponses: 10
    Dernier message: 14/03/2007, 14h08
  4. convertir un objet en tableau de byte
    Par hammag dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 12/10/2006, 13h12
  5. [POO] Convertir un objet en tableau
    Par jbaudin dans le forum Langage
    Réponses: 3
    Dernier message: 22/03/2006, 16h50

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