Partage
  • Partager sur Facebook
  • Partager sur Twitter

Vérifier si un objet existe en c#

Sujet résolu
    13 septembre 2021 à 14:32:52

    Bonjour à tous !

    Ma question est peut-être assez simple mais impossible de trouver la réponse par moi-même...

    J'ai une liste d'objet avec plusieurs propriétés. Je ne sais pas combien j'ai d'objet en tout et le nombre va évoluer. Je souhaite stocker une des propriété dans une list. Pour ça je comptais faire une boucle mais quand j'arrive à un index qui n'existe pas ça plante (logique) et je n'arrive pas à simplement vérifier si l'index renvoi quelque chose ou non. J'ai trouvé pour une list, mais pas pour des objets...

    // mon objets Spes
    public class Spes
    {
        public string ID;
        public string Joueur;
        public string Dribble;
        public string Tir;
        public string FlottantH;
        public string FlottantB;
        public string Passe;
        public string UneDeux;
        public string Tacle;
        public string Contre;
        public string Interception;
        public string Arret;
        public string Punch;
    }
    
    //Ma tentative de list :
    List<string> listeNoms = new List<string>();
                int i = 0;
                for (i = 0; i < 500; i++)
                {
                    if (Spe[i].Joueur == null)
                    {
                        break;
                    }
                    listeNoms.Add(Spe[i].Joueur);
                }
                listeNoms.Sort();
                foreach (string nom in listeNoms) { Debug.Log(nom); }
            }

    Je vous remercie pour vos lumières !

    • Partager sur Facebook
    • Partager sur Twitter
    C'est lorsqu'on arrête d'apprendre que l'on commence à vieillir
      13 septembre 2021 à 14:43:50

      Salut,

      Pour vérifier si un objet existe, on vérifie s'il vaut null. Toi tu vérifies si la propriété "Joueur" de Spe[i] est null, mais pas si Spe[i] est lui-même null,
      tu dois donc tester cela :

      if(Spe[i] == null)
      {
      }

      Cependant, je ne comprends pas bien l'intérêt de votre code, pour pouvoir vous répondre plus précisément, pouvez vous me dire pourquoi vous voulez stocker une liste de nom ? 
      Deuxièmement, quel est le type exact de "Spe" et son utilité ?

      Normalement vous ne devriez pas avoir à utiliser des break pour faire des choses aussi basiques.

      merci

      • Partager sur Facebook
      • Partager sur Twitter
        13 septembre 2021 à 14:48:54

        c'est quoi Spe[] ? une liste de Spes ? si oui, il faut peut-être tester la valeur par défaut d'une chaine (qui doit être une chaine vide sauf erreur)

        si ton objet dans la liste est null, alors elle n'a pas de propriété; il faut testé l'objet lui même Spe[i] == null

        (si j'ai bien compris le problème)

        • Partager sur Facebook
        • Partager sur Twitter
          13 septembre 2021 à 15:11:38

          Oh l'imbécile...

          J'étais en train de vous répondre quand ça a fait tilt dans mon petit cerveau. J'ai déjà un tableau qui stock l'ensemble des Spes. Comme je suis focaliser sur le fait que j'utilise des objets et que je manipule pas encore très bien tout ça j'ai oublié que c'était un tableau ^^'

          Du coup un simple i < Spe.Length et on est bon. Sorry pour le dérangement...

          Pour tenter de répondre à vos question, Spe est issue une base de données que je récupère formaté en json. Ce qui donne un truc comme ça : 

          {"Items":[{"ID":"1","Joueur":"Tsubasa","Dribble":"475","Tir":"535","FlottantH":"475","FlottantB":"525","Passe":"455","UneDeux":"475","Tacle":"455","Contre":"300","Interception":"475","Arret":"0","Punch":"0"},{"ID":"2","Joueur":"Hyuga","Dribble": etc...

          Avec un petit code je redistribue le tout dans un tableau : Spes[] Spe = JsonHelperPlayers.FromJson<Spes>(ListeSpes);

          Et ensuite j'accède à la donnée que je veux avec l'index du tableau. Par exemple Spe[0].Joueur me donnera "Tsubasa".

          J'espère que c'est plus clair. Merci à vous :)

          • Partager sur Facebook
          • Partager sur Twitter
          C'est lorsqu'on arrête d'apprendre que l'on commence à vieillir

          Vérifier si un objet existe en c#

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown