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 :

array for noob (je parle de moi ^^)


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut array for noob (je parle de moi ^^)
    Salut,
    oui je sais je suis nul mais la je trouve vraiment pas et pourtant j'ai utilise mon ami google...

    Mais comment cree t on des array avec asp.net en c# ????

    J'ai fait un truc comme ca
    Array listeint ;
    listeint.SetValue("test", 1);
    il me met -> utilisation d'une variable local non assigne
    Array listeint = new Array();
    listeint.SetValue("test", 1);
    il me met -> Impossible de créer une instance de la classe abstraite ou de l'interface 'System.Array'

    je trouve pas
    merci d'avance

  2. #2
    Membre averti
    Avatar de UNi[FR]
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2002
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2002
    Messages : 340
    Points : 448
    Points
    448
    Par défaut
    sachant qu'il faut que tu connaisse la taille max de ton tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int[] listeint = new int[n];
    si tu veux un tableau dynamique utilise plutot des Listou des Collection
    Gnarf !
    Mon C.V.
    Culture agile && Software Craftsmanship && (.NET {VS 2019 && WPF} || PHP {(PHPStorm || VS Code) && (Docker)})

    Pensez au TAG

  3. #3
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    C'est normal la création d'Array avec l'objet Array est compliqué en .Net.
    En général, pour un tableau de int, il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int[] TabDeInt = new int[5];
    Donc crée un tableau avec les crochets sans passer par Array.

    Pour créer un tableau à partir de Array, il faut passer par la méthode CreateInstance de Array qui possède 6 implémentations. Une de celle que j'utilise est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array Tab = Array.CreateInstance(((int)i).GetType(), 12);
    Le premier paramètre est le type des éléments de l'array, à la place de ((int)i).GetType(), tu peut déclarer i de type int avant et faire i.GetType() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int i = 0; //Je ne pense pas que l'initialisation à zéro est obligatoire.
    Array Tab = Array.CreateInstance(i.GetType(), 12);
    Le seconde paramètre correspond à la longueur du tableau.

    Voilà bon courage pour la suite
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  5. #5
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    La manière dont tu te sert de ton tableau ressemble en effet à un dictionnaire, ou une hashtable...
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Dans ce cas là, peut être que ce code te seras utile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Array KeyConf = null;
    KeyConf = Array.CreateInstance("".GetType(), Configuration.Count);
    Configuration.Keys.CopyTo(KeyConf, 0);
    Il récupère dans un tableau l'enssemble des clés du dictionnaire. Configuration étant le dictionnaire.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  7. #7
    Membre averti
    Avatar de UNi[FR]
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2002
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2002
    Messages : 340
    Points : 448
    Points
    448
    Par défaut
    Citation Envoyé par ced600 Voir le message
    Dans ce cas là, peut être que ce code te seras utile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Array KeyConf = null;
    KeyConf = Array.CreateInstance("".GetType(), Configuration.Count);
    Configuration.Keys.CopyTo(KeyConf, 0);
    ca me parait compliquer pour un noob
    Gnarf !
    Mon C.V.
    Culture agile && Software Craftsmanship && (.NET {VS 2019 && WPF} || PHP {(PHPStorm || VS Code) && (Docker)})

    Pensez au TAG

  8. #8
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    Merci a tous

    Je pense que le
    int[] listeint = new int[n];
    me suffira pour ce que je veux faire ^^
    (une liste d'entier que je souhaite recuperer par la suite pour une requete)


    Question annexe.
    Est on oblige de donner la taille du tableau au moment de sa creation? Comment faire pour l'agrandir par la suite?
    FAut que je passe par array comme ced600 me propose?

    ***************************

    Sinon pour les dictionnaires ca a l'air pas mal, ca erssemble a List<truc> , non?
    (enfin un peu trop complique pour que je me lance comme ca dedans... :p )

  9. #9
    Membre averti
    Avatar de UNi[FR]
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2002
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2002
    Messages : 340
    Points : 448
    Points
    448
    Par défaut
    dance ce cas il faut passer une une collection

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Collection<int> listeInt = new Collection<int>;
    listeInt.Add(1);
    ...
    Gnarf !
    Mon C.V.
    Culture agile && Software Craftsmanship && (.NET {VS 2019 && WPF} || PHP {(PHPStorm || VS Code) && (Docker)})

    Pensez au TAG

  10. #10
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Comme il te l'a été proposé plusieurs fois, pour créer un tableau dynamique, mieux vaut passer par les liste et les collections. En plus si tu es en .Net 2.0 tu peux utiliser la généricité, ce qui est très pratique.
    Je n'ai mis l'exemple de l'utilisation de l'array qu'au cas où tu en ai un besoin inconditionelle, mais je dirais que c'est une utilisation à éviter.
    Personnelement je l'utilise parce que en .net 1.1 je n'ai trouvé aucun autre moyen pour récupérer la liste de clé d'un dictionnaire afin de la parcourir.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  11. #11
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    Collection<int> listeInt = new Collection<int>;

    j'avais essaye de partir sur ce genre de truc au depart mais j'avais du faire un connerie parce que ca marchait pas et maintenant ca marche :p. ET puis cree une liste me paraissait bien complique pour juste recuperer un tableau d'entier... :s

    /*
    Une petite question moi j'ai remplace collection par List. Mon vb ne connait pas Collection... si j'avais voulu l'utiliser j'aurais du rajouter une bibliotheque ou c'est juste un mot general que tu a utilise pour designer les List et autres trucs du meme genre?
    */

    Sinon ma solution
    ************************
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
        protected void Page_Load(object sender, EventArgs e)
        {
            List<int> maliste = new List<int>();
            maliste = Magasin.doublon();
            for (int i = 0; i < maliste.Count; i++)
            {
                Response.Write(maliste[i]+"<br/>");
            }
        }
     
     /// <summary>
        /// Liste les doublons de la table mag (juste pour le debuggage car liste recu fausse)
        /// </summary>
        public static List<int> doublon()
        {List<int> maliste = new List<int>();
     
            NpgsqlConnection connexion = new NpgsqlConnection(GlobalVars.connexionSNPDB);
            connexion.Open();
            string requete = "SELECT reference FROM magasins GROUP BY reference HAVING COUNT(reference)>1 Order by reference DESC";
     
            NpgsqlCommand command = new NpgsqlCommand(requete, connexion);
            NpgsqlDataReader dr = command.ExecuteReader();
            try
            {
                while (dr.Read())
                {
     
                    if (!(dr.IsDBNull(0))) maliste.Add((int)dr[0]);
                }
     
            }
            catch (Exception e)
            {
                //Array listeint;
            }
     
            connexion.Close();
            return maliste;
     
        }
    ********************
    En tout cas merci a tous.

  12. #12
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Mon vb ne connait pas Collection
    Heu tu veux dire koi par vb. Je connais vs mais pas vb, ou alors vb de visual basic mais cela ne semble pas être le cas . A moins que VB.Net resemble trait pour trait à c# ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  13. #13
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    quand je dis que je suis un noob ^^ OUi c'est visual studio que j'utilise... enfin que j'essaye d'utiliser depuis une semaine ^^

  14. #14
    Membre averti
    Avatar de UNi[FR]
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2002
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2002
    Messages : 340
    Points : 448
    Points
    448
    Par défaut
    Pour les utliser les collections il faut mettre le using suivant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    using System.Collections.ObjectModel;
    Gnarf !
    Mon C.V.
    Culture agile && Software Craftsmanship && (.NET {VS 2019 && WPF} || PHP {(PHPStorm || VS Code) && (Docker)})

    Pensez au TAG

  15. #15
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Le lien que t'a passe Thomas Lebrun est un tutorial sur l'utilisation des dictionnaires en .Net 2.0 où tu verras des exemples de collection.
    Il y a aussi le site de microsoft :
    http://msdn2.microsoft.com/fr-fr/lib...ic(VS.80).aspx
    En te ballandant sur le menu de gauche tu peux acceder à l'aide de toute les classes.

    Et aussi le guide de programmation, à la page des collections :
    http://msdn2.microsoft.com/fr-fr/lib...wz(VS.80).aspx

    Pour plus d'information, consulte la et les tutoriaux de developpez.com :
    http://dotnet.developpez.com/

    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  16. #16
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    okip merci.

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

Discussions similaires

  1. qui a deja entendu parlé de real array
    Par Hervé dans le forum C++
    Réponses: 1
    Dernier message: 12/11/2007, 16h51
  2. [Prototype] Arrays et les For..in
    Par lvr dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 14/10/2007, 23h43
  3. array for noob
    Par xian21 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 27/09/2007, 11h50
  4. Problème+for+array+get
    Par xmane85 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 15/05/2006, 17h35

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