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 :

Vérifier la présence d'un objet dans une collection. [Débutant]


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Vérifier la présence d'un objet dans une collection.
    Bonjours, j'aimerais savoir quelle est la meilleur méthode de procéder pour rechercher parmi une collection la présence d'un objet, et si aucun ne possède de propriété identique, demander à l'utilisateur de le créer. Exemple, je doit faire un programme pour mon cours où il y a des œuvres, des artistes et des conservateur. Lorsque j’appelle ma fonction d'ajouter une œuvre et que l'on demande a l'utilisateur d’entrer l'identificateur de l'artiste, si aucun artiste n'existe avec cet identificateur le programme demande de créer l'artiste.

    -David

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2011
    Messages
    453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 453
    Points : 478
    Points
    478
    Par défaut
    Il faudrait donner du code, nous ne sommes pas là pour te faire ton exercice mais pour t'aider sur les points où tu butes...

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     public static void AjouterOeuvre()
            {
            ...
            string IDArtiste;
            ...
            Console.WriteLine("Entrer l'identificateur de l'artiste");
            IDArtiste = Console.ReadLine();
            // j'aimerais la vérification ici
            ...
            ArtPiece Nouvelle = new ArtPiece(IDOeuvre, NomOeuvre, Annee1, Valeur1, Prix1, IDArtiste, Etat1);
            Gallery1.Oeuvre.Add(Nouvelle);      
            }
    Ma collection d'artistes ressemble a ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     public class Artists : CollectionBase
    	{
            public void Add(Artist newArtist)
            {
                List.Add(newArtist);
            }
     
            public Artists()
            {
            }
     
            public Artist this[int artistIndex]
    		{
    			get
    			{
    				return (Artist)List[artistIndex];
    			}
    			set
    			{
    				List[artistIndex] = value;
    			}
    		}
     
            public bool Contains(Artist ID)
            {
                return false;
            }        
     
    	}

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Désolé pour la mise en page et pour le manque de clareté, c'est la premiere fois que j'utilise un forum pour des questions d'informatique.

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 182
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 182
    Points : 4 496
    Points
    4 496
    Par défaut
    il y a la balise [ code] [/code]

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Pourquoi ne pas utiliser une collection générique?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var artistes = new List<Artiste>();
    Pour trouver un élément, il y a plusieurs façons. En voici une:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    artistes.Find(a => a.une_propriété_unique == valeur_recherchée) != null;

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    332
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2002
    Messages : 332
    Points : 502
    Points
    502
    Par défaut
    Hey bien moi j'aime mieux le code clair.


    Change de profession. La programmation, ce n'est pas pour toi. Les génériques ont été introduits dans C# justement pour rendre le code plus clair.

  8. #8
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Je suis d'accord avec Babyneedle, les génériques changent vraiment la vie (Comme pour les médicaments )

    Par contre, la où je suis moins d'accord (Mais c'est très subjectif)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    artistes.Find(a => a.une_propriété_unique == valeur_recherchée) != null;
    Personnellement, je préfère overrider l'égalité dans la classe Artiste.

    On peut imaginer un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    // Dans la classe Artiste
    private IsEqualTo(Artiste other)
    {
        if(this.ID == other.ID)
            return true;
     
        if(this.Name == other.Name && this.FirstName = other.FirstName)
            return true;
     
        return false;
    }
    Tu l'utilises dans l'overriding d'Equals et tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    myArtistCollection.Contains(myArtist);
    ou encore:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(myArtist == myOtherArtist)
        // Do something

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Merci beaucoup pour l'aide.

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

Discussions similaires

  1. Vérifier la présence d'un mot dans une liste
    Par herken1986 dans le forum C#
    Réponses: 6
    Dernier message: 08/02/2012, 11h44
  2. [AC-2007] Requête pour vérifier la présence d'un enregistrement dans une table.
    Par Mat08 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 22/09/2011, 18h06
  3. Réponses: 6
    Dernier message: 18/08/2010, 10h42
  4. [VB.NET] Suppression d'objets dans une collection
    Par master56 dans le forum VB.NET
    Réponses: 7
    Dernier message: 03/06/2010, 21h46
  5. [VS.net] Vérifier le présence d'un caractère dans une chaine
    Par arnolem dans le forum Windows Forms
    Réponses: 15
    Dernier message: 10/09/2005, 15h19

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