Partage
  • Partager sur Facebook
  • Partager sur Twitter

c# instancier une list d'objet plus proprement

Sujet résolu
    8 mars 2019 à 17:31:41

    Bonjour,

    Je ne pense pas que ma méthode pour rajouter des objets dans ma liste soit très conventionnelle.

    Voici mon objet : positionObject

    namespace ProjetLocalisationSass.Models
    {
        public class PositionObject
        {
            /* contructor */
            public PositionObject() { }
            public PositionObject( string position , bool emptyPosition)
            {
    
            }
    
            public string position { get; set; }
            public bool emptyPosition { get; set; }
        }
    }

    Et voilà comment je rajoute des valeurs dans ma ListPosition : 

    Je trouve le traitement très lourd, à chaque fois, lors de la compilation je passe de mon object ModelView à ma classe Position à chaque instance.

    Est-ce possible d'avoir un traitement moins lourd ? J'ai quand même 116 (j'ai simplifier le nombre d'instance dans l'image) object . 

     J'ai entendu le mot collection, dictionnary, essayer plusieurs méthodes (clef, valeur ).. tout ce que j'essaye pour un traitement moins lourd échoue. 

    Aurez-vous un exemple de liste d'objet instancier à me montrer ?

    Je vous remercie d'avance ;)

    • Partager sur Facebook
    • Partager sur Twitter
      13 mars 2019 à 16:47:28

      Bonjour,

      Je pense que le dictionnaire pourrait être plus propre, et performant que ta liste, surtout que tu instancies un objet qui au final, fait penser à un KeyValuePair simple.

      Avec le dictionnaire, tu peux faire comme ça :

      public Dictionary<string, bool> PositionDictionary = new Dictionary<string, bool>
      {
          { "H2", true },
          { "H3", true }
      };

      Tu reviens dans tous les cas à un truc conséquent vu le nombre d'éléments que tu as, mais il faudra bien que tu stockes ça quelque part toute façon.

      Mais je sais que la liste, si tu ne mets une taille définie, elle va allouer de la mémoire inutile supplémentaire. Surtout que tu as besoin d'un système de clé/valeur donc le dictionnaire est une meilleure option.

      o/

      • Partager sur Facebook
      • Partager sur Twitter
      Insanity is doing the exact same fuckin' thing over and over again, expecting shit to change...
        21 mars 2019 à 15:14:43

        Bonjour,

        Je n'ai pas poursuis cette fonctionnalité, mais je te remercie pour ton conseil, effectivement  avec un dictionary celà aurait été plus propre. Juste une dernière question, si j'aurais fait mon Dictionary, j'aurais plus vraiment eu besoin de ma classe Position ? ( elle ne me servait pas à grand chose, juste à pouvoir changer la valeur true et false des positon, selon si la place était vide ou nom ) . 

        -
        Edité par Cielphis 21 mars 2019 à 15:17:01

        • Partager sur Facebook
        • Partager sur Twitter
          21 mars 2019 à 15:47:21

          Bonjour,

          Non pour le peu de propriétés dedans, elle ne servait pas à grand chose.

          Comme je te l'ai dit au-dessus, ça fait penser à un objet KeyValuePair qui contient une clé et une valeur. Si tu veux avoir une liste de string/bool, tu utilises le Dictionary et s'il n'y a qu'un objet, le KeyValuePair.

          Tu aurais pu l'utiliser à la limite, pour l'instanciation de ton Dictionary et d'autres objets si tu en avais eu plus :)

          o/

          • Partager sur Facebook
          • Partager sur Twitter
          Insanity is doing the exact same fuckin' thing over and over again, expecting shit to change...

          c# instancier une list d'objet plus proprement

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          • Editeur
          • Markdown