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

ASP.NET Discussion :

Ré-organiser le contenu d'un double[]


Sujet :

ASP.NET

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut Ré-organiser le contenu d'un double[]
    Bonjour à tous,

    J'ai une chaine double[] avec ne nombreuses valeurs. Existe-t-il une méthode pour réorganiser les valeurs dans l'ordre croissant de cette chaine ? Et ainsi obtenir une chaine double[] contenant les mêmes valeurs, mais en ordre croissant...

    J'ai fais une recherche dans la FAQ, je n'ai rien trouvé.

    Merci.

    lespalom

  2. #2
    Membre Expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Par défaut
    une chaîne double[] ???

    Tu parles d'un tableau de string à 2 dimensions ou d'un tableau de doubles ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    Pardon, un tableau de double ...

  4. #4
    Membre chevronné Avatar de BrItneY
    Profil pro
    Étudiant
    Inscrit en
    Juin 2006
    Messages
    488
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 488

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    Oula... compliqué tout ça, je n'ai jamais utilisé ça. Peux tu m'expliquer un peu plus en détail STP ?

    Dans mon cas, j'ai un tableau

    Avec des valeurs aléatoires. Et je voudrais avoir la possibilité de trier tout ça dans l'ordre croissant ou décroissant...

    Merci

  6. #6
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 288
    Par défaut
    Si tu développes avec le fk 3.5 tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    double[] Heures = { 5, 10, 4, 9 };
    var test = Heures.OrderByDescending(i => i);
    foreach (double d in test) {
    Console.WriteLine(d);
    }
    Console.Read();
    Donne
    10
    9
    5
    4

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    Merci Drop, mais je ne développe pas en Application Windows, mais en site internet ASP.net C#... par conséquent je n'ai pas le "Console.WriteLine" et tout ça...

    Si je t'ai suivi, cela serait quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            for (int i = 0; i < Heures.Length; i++)
            {
                Heures = Heures.OrderByDescending(i => i);
            }
    Mais qu'est-ce que i => i ???

    Merci d'expliquer un peu plus je suis débutant

  8. #8
    Membre chevronné
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 288
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    for (int i = 0; i < Heures.Length; i++)
            {
                Heures = Heures.OrderByDescending(i => i);
            }
    Au niveau de ton code tu n'a pas besoin de faire une boucle , car là, tu réorganise plusieurs fois ton tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Heures = Heures.OrderByDescending(i => i);]
    Cela suffit pour réorganiser ton tableau.

    le (i=>i) correspond au prédicat de tri

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    Oui mais avec ça, lors de la compilation j'ai le message :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur	10	Impossible de convertir implicitement le type 'System.Linq.IOrderedEnumerable<double>' en 'double[]'	E:\Sites Persos\Carnet_de_vol\Stats.aspx.cs	279	18	E:\Sites Persos\Carnet_de_vol\

  10. #10
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 62
    Par défaut
    Tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    double[] test ={ 1, 2, 5 };
    Array.Sort(test);

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    C'est exactement ça merci !

    Autre question, peut-on faire pareil avec un tableau à 2 dimensions ? Car en fait, j'ai une liste

    et une liste

    Dont les indexs se correspondent (par exemple, le Noms[2] a pour valeur numérique associée Heures[2])... donc si je change l'ordre de Heures[] cela ne va plus correspondre. Donc j'ai pensé à mettre les deux dans un tableau string à 2 dimensions et du coup peut-on toujours réordonner la tableau avec Array.Sort ?

    Merci !

  12. #12
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 62
    Par défaut
    Le mieux (le plus propre) c'est que tu te fasse une classe qui implémente IComparable avec nom et heure en propriété
    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
     
    public class NomEtHeure : IComparable{
     
    private string nom;
    public String Nom{
    get{return nom;}
    set{nom=value;}
    }
    private long heure;
    public long Heure{
    get{return heure;}
    set{heure=value;}
    }
     
    public int CompareTo(object obj)
            {
                return ((NomEtHeure) obj).Heure.CompareTo(this.Heure);
            }
    }
    Ensuite tu te fait un tableau, une liste de cette classe et tu peut la trier suivant la méthode de comparaison de celle ci, en l'occurrence ici sur l'heure.
    Tu pourrais choisir de trier sur l'heure et sur le nom etc...

    La méthode sort (des liste des tableaux) se base sur l'implémentation de cette interface.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    Ensuite tu te fait un tableau, une liste de cette classe et tu peut la trier suivant la méthode de comparaison de celle ci, en l'occurrence ici sur l'heure.
    Tu pourrais choisir de trier sur l'heure et sur le nom etc...
    Je rappelle que je suis débutant Tu peux me montrer ? Donner un exemple ?

    Merci beaucoup.

  14. #14
    Membre éclairé
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2006
    Messages : 62
    Par défaut
    C'est la même chose que pour ton long

    Tu créé ta classe comme ci dessus;

    Ensuite fait un tableau d'objet de cette classe :

    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
     
    NomEtHeure nomEtHeure1= new NomEtHeure();
    nomEtHeure1.Nom="toto";
    nomEtHeure1.Heure=5;
     
    NomEtHeure nomEtHeure2= new NomEtHeure();
    nomEtHeure2.Nom="toto2";
    nomEtHeure2.Heure=1;
     
    etc..
    //ici tu peux faire un tableau mais une list c'est pratique aussi
    List<NomEtHeure> list=new List<NomEtHeure>();
    list.Add(nomEtHeure1);
    list.Add(nomEtHeure2);
    ...
    list.Sort();

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    D'accord j'ai mieux compris Mais ca pose problème sur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List<NomEtHeure> list=new List<NomEtHeure>();
    Qu'est-ce que List<> ??? C'est bien du C# ?

    Je préfèrerai avoir en sortie deux Tableaux Noms[] et Heures[] comme précédemment, car je les exploite dans la suite de mon code... c'est possible ?

Discussions similaires

  1. Double click renvoi le contenu vers textbox
    Par goulen dans le forum Excel
    Réponses: 2
    Dernier message: 20/12/2011, 11h56
  2. [Batch] lister le contenu d'un répertoire et protéger avec des double quotes
    Par lavazavio dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 14/09/2010, 19h08
  3. Organiser des sizers / afficher en double
    Par Gourbish dans le forum wxWidgets
    Réponses: 3
    Dernier message: 08/01/2010, 00h43
  4. récuperer contenu par double click ?
    Par mauyebo dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 12/02/2009, 17h05
  5. Réponses: 0
    Dernier message: 19/03/2008, 10h50

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