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 :

Comparaison tableau int[]


Sujet :

C#

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Comparaison tableau int[]
    Bonjour,

    Je débute ne C# et j'aurais besoin de comparer deux listes de nombre tirée d'une base donnée, j'arrive à obtenir les données en les ajoutant dans une liste box, voici la fin du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    MySqlDataReader reader = MyDA.SelectCommand.ExecuteReader();
     
                  while (reader.Read())
                        {
                            listBox2.Items.Add(reader["id"].ToString()); 
                        }
    mais je souhaiterais que les résultat "arrive" dans un tableau pour que je puisse les comparer avec cette fonction, numbersA devant être les résultat de ma requête MySQL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public void Linq52()
            {
                int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
                int[] numbersB = { 1, 3, 5, 7, 8 };
     
                IEnumerable<int> aOnlyNumbers = numbersA.Except(numbersB);
     
                //Numbers in first array but not second array;
                foreach (var n in aOnlyNumbers)
                {
                    listBox2.Items.Add(n);
                }
            }
    Merci de votre aide car c'est le début en C# et tout me parait compliqué.

    Cordialement,

  2. #2
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Bonjour

    Donc vous pouvez déclarer un nouveau tableau pour contenir vos données comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int nbElement = 5;
     
    int[] test = new int[nbElement];
    ensuite pour remplir ce tableau ce sera un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int i = 0;
    foreach (var n in aOnlyNumbers)
    {
       test[0] = int.Parse (n.ToString()) ,
       i++;
    }
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2012
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Ma demande a dû être mal exprimé, je ne sais pas de combien d’éléments sera fait mon tableau car je veux le remplir avec mon while.

    De plus vous m'expliquez comment remplir mon tableau à partir du résultat de la fonction linq52(), or je souhaite remplir mon tableau à partir d'une ma base MySql.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    MySqlDataReader reader = MyDA.SelectCommand.ExecuteReader();
     
                  while (reader.Read())
                        {
                          array
                        }
    Linq52(array)
    int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
    devrait être :
    int[] numbersA = array;

    Espèrant avoir été plus clair.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 612
    Points : 1 050
    Points
    1 050
    Par défaut
    Salut
    -----

    Si tu veux procéder avec un while en lecture séquentielle de fichier, tu utilises une List().
    Tu y ajoutes tes éléments.

    Si ensuite tu as besoin d'un tableau, tu convertis la liste en tableau avec:

    var monTableau = maListe.ToArray();

    On ne peut pas agrandir un tableau de façon dynamique, donc soit tu connais d'avance le nombre d'éléments et tu utilises directement un tableau, soit tu as tes éléments qui arrivent un par un et tu utilises une liste, soit tu accèdes à ta base par une requête linq qui te renvoie directement un tableau.

    Tu traites ce que tu as à traiter, et si tu as besoin d'un contrôle ListBox dont les items sont les éléments, tu les ajoutes après traitement. Si tu n'as pas besoin de ce contrôle, l'utiliser ne sert à rien.

    A+
    Claude

  5. #5
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Ou tu procèdes comme ClaudeBg le préconise, ou ce que j'utilise souvent c'est faire un MyDA.SelectCommand.ExecuteScalar en remplaçant le select de ma query par un SELECT count(id) pour récupérer le nombre d'enregistrement et ensuite tu as la taille pour initialiser ton tableau.

    Ensuite on en revient à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int i = 0;
    while (reader.Read())
    {
       test[i] = int.Parse (reader["id"].ToString());
       i++; 
    }
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

Discussions similaires

  1. comparaison variable int entre 2 chiffes
    Par lovedesitaliens dans le forum C#
    Réponses: 5
    Dernier message: 13/10/2010, 14h11
  2. Réponses: 10
    Dernier message: 16/06/2010, 18h12
  3. Conversion d'un tableau int en tableau char
    Par lcoulon dans le forum Débuter
    Réponses: 7
    Dernier message: 11/12/2009, 11h53
  4. passage par valeur d'un tableau int
    Par midotek dans le forum C
    Réponses: 1
    Dernier message: 27/01/2009, 12h23
  5. String dans un tableau int
    Par maminova77 dans le forum C++
    Réponses: 18
    Dernier message: 30/04/2006, 09h22

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