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

VB.NET Discussion :

Recherche dans Tableau/Array


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut Recherche dans Tableau/Array
    Salut All,

    Dans un tableau simple d'une centaine d'enregistrement, j'aimerai pouvoir recuperer l'index de la valeur (as long) la plus haute ainsi que si c'est le cas, tous les autres index avec la meme valeur la plus haute.

    J'ai beau chercher sur msdn, mais sans reel resultat, et je trouve bizarre de ne trouver aucune commande.
    Je sens que je vais devoir faire à la main.

    Merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Ben à toi de faire ton algo de recherche le plus performant si possible, il n'y a rien de déjà fait.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Je me demande s'il n'y a pas moyen de faire ça avec la méthode d'extension Aggregate (C# 3)

  4. #4
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Je me demande s'il n'y a pas moyen de faire ça avec la méthode d'extension Aggregate (C# 3)
    Quel est donc ce drôle d'oiseau ?

    Je continue de chercher dans toutes les classes Array (et il y en a une sacre dose) mais rien sur cette petite chose.
    Meme en triant le tableau, ca le fait pas et pire, je cite : 'les resultats peuvent etre differents selon le CultureInfo en cours ...'

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Danyel Voir le message
    Quel est donc ce drôle d'oiseau ?
    Citation Envoyé par tomlev
    Je me demande s'il n'y a pas moyen de faire ça avec la méthode d'extension Aggregate (C# 3)
    Je continue de chercher dans toutes les classes Array (et il y en a une sacre dose) mais rien sur cette petite chose.
    Meme en triant le tableau, ca le fait pas et pire, je cite : 'les resultats peuvent etre differents selon le CultureInfo en cours ...'
    Ca permet d'appliquer une fonction d'agrégation à une liste (somme, maximum, minimum, moyenne, médiane, etc). Enfin, c'était juste une idée, ce n'est peut-être pas adapté à ce scénario.
    Et de toutes façons, je crois me souvenir que tu utilises .NET 2.0, et les méthodes d'extensions ne sont apparues qu'en 3.5.

  6. #6
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Et de toutes façons, je crois me souvenir que tu utilises .NET 2.0, et les méthodes d'extensions ne sont apparues qu'en 3.5.
    C'est exact, j'utilise tjrs pour l'instant 2.0 car je ne peux me permettre de limiter mes applications à minimum XP et supérieur.
    (meme si je trouve 2.0 vraiment trop mauvais sur la vitesse d'affichage)

  7. #7
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Si ce n'est qu'une centaine, tu peut d'abord chercher le plus grand élément du tableau (en parcourant tous les éléments une première fois) et obtenir les indexes de ceux ci (en parcourant une deuxième fois et en rajoutant le résultat dans une liste). Bon sinon, peut mieux faire (une seule passe) genre :
    Code c# : 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
     
    public int[] FindAllMax(long[] list)
            {
                if (list.Length < 1)
                    return new int[0];
                long max = list[0];
                List<int> indexes = new List<int>();
     
                for (int i = 1; i < list.Length; i++)
                {
                    switch (list[i].CompareTo(max))
                    {
                        case -1: { break; }
                        case 0: { indexes.Add(i); break; }
                        case 1:
                            {
                                indexes.Clear();
                                max = list[i];
                                indexes.Add(i);
                                break;
                            }
                    }
                }
     
                return indexes.ToArray();
            }

  8. #8
    Membre Expert Avatar de Danyel
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2005
    Messages
    1 699
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 699
    Par défaut
    Merci smyley, je vais traduire cela en vb et voir un peu.

  9. #9
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Mer*ouille

    après la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<int> indexes = new List<int>();
    il faut rajouter

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

Discussions similaires

  1. [array] rechercher dans tableau à 2 dimensions
    Par camyo dans le forum Langage
    Réponses: 2
    Dernier message: 14/02/2014, 15h06
  2. Recherche dans tableau 2 dimension / Copie tableau 2 dimension vers 1
    Par mustang-ffw02 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 20/10/2007, 18h50
  3. fonction recherche dans tableau javascript
    Par calitom dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 27/11/2006, 15h51
  4. [Tableaux] Problème PHP - Recherche dans un Array
    Par daniel_gre dans le forum Langage
    Réponses: 1
    Dernier message: 18/07/2006, 09h10
  5. Recherche dans Tableau de point
    Par Platypus dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 30/08/2005, 18h29

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