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 :

Cast et Array


Sujet :

C#

  1. #21
    En attente de confirmation mail Avatar de fred777888999
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    250
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 250
    Points : 292
    Points
    292
    Par défaut
    C'est exactement la meme chose. Tu ne peux pas caster un List<truc> en List<bidule> car ca obligerai a caster chacun des elements, mais une fois que tu as trouve un element, tu peux le caster de truc en bidule, et l'heritage ne change rien a ca...

  2. #22
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Points : 120
    Points
    120
    Par défaut
    on est bien d'accord. L'interet de la liste générique est quand même de s'assurer du typage de la collection et de ne pas avoir à caster. Donc en réponse à neptune je me demandai si on pouvait faire quelquechose qd même avec une list<T> plutot qu'une arraylist dans ce cas.

  3. #23
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2003
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Dans quelques temps, tu pourras officiellement faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    List<object> list = ...;
    List<int> listInt = list.OfType<int>();
    avec les méthodes d'extension de .NET 3.5

  4. #24
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Points : 627
    Points
    627
    Par défaut
    Attention OfType() ne revoie pas une List mais un IEnumerable, donc ici ca ne marchera pas. =)

    Puis au pire en 2.0 tu peux deja faire un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    List<object> list = new List<object>();
     
    List<int> list1 = list.ConvertAll<int>(delegate(object o) { return (int)o; });

  5. #25
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Points : 120
    Points
    120
    Par défaut
    Yep effectivement intéressant une méthode du type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public List<T> GetListGenerique<T>() where T : Parent
    {
       return this.m_oListe.ConvertAll<T>( delegate( Parent o ) { return (T)o; } );
    }
    permet de récupérer des collections de fils. Pas mal. Bcp de plomberie qd même et on voit qd même poindre les problèmes de covariance ect...auxquels d'ailleurs faudrait que je m'intéresse un peu plus

  6. #26
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Points : 120
    Points
    120
    Par défaut
    Néanmoins l'affectation à la liste reste problématique car autant l'on peut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Child[] oArrayChild = new Child[1];
     Parent[] oArrayParent = oArrayChild;
    mais l'affectation ci-dessous est refusé car List<T> est invariant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      List<Child> oListeChild = new List<Child>();
      List<Parent> oListeParent = oListeChild;

Discussions similaires

  1. [JSON] Problème de Cast Array en String
    Par helter_skelter dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 21/10/2009, 12h02
  2. TStringList en array of string
    Par JediKerian dans le forum Langage
    Réponses: 2
    Dernier message: 20/03/2003, 15h37
  3. Réponses: 2
    Dernier message: 23/02/2003, 00h49
  4. traduction en delphi "reinterpreted cast"
    Par Chupakabra dans le forum Langage
    Réponses: 3
    Dernier message: 13/02/2003, 15h49
  5. passage en paramètre d'un array dynamique 2D
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2002, 19h47

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