begin process at 2010 03 22 00:44:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C#

 > 

Archives

 > 

Au secours

 > 

Trier tableau + help


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Trier tableau + help

jeudi 7 avril 2005 à 15:37:00 | Trier tableau + help

emmanuel9

Bonjour,

j'ai une classe Personne :

Personne
{
public :
String * nom ;
String * prenom ;
int age ;
}

et j'ai une arraylist de 15 instance de ma classe Personne, et je souhaiterais pouvoir les trier par exemple sur leur nom ou sur leur prenom ou sur leur age par ordre croissant ou decroissant. Mais je n'ais point vu de maniere qui permettre de le faire.
Je precise que j'ai une arraylist de 15 instance mais je peux faire aussi avec un tableau de 15 items.

Quelqun aurait t'il une solution ?

Par avance, merci.
jeudi 7 avril 2005 à 16:12:52 | Re : Trier tableau + help

Athalus

Membre Club
Bonjour,

jetes un oeil ici
http://www.csharpfr.com/forum.v2.aspx?ID=211455 ca peut t'aider

hum.......

jeudi 7 avril 2005 à 16:24:09 | Re : Trier tableau + help

emmanuel9

si j'ai un tableau à une dimension dedans j'arrive a le trier :

talbeau->sorting = Sorting::ascending ou descending

la syntaxe est pas bonne mais bon

mais en faite je voudrais trier mes objets sur la base d'une de leur propriété

jeudi 7 avril 2005 à 16:28:05 | Re : Trier tableau + help

titeoe

Réponse acceptée !

personellement je construirait une datatable avec 3 champs correspondant aux 3 membres de ta classe (nom , prenom , age )

ensuite tu remplit ta datatable avec les données de ton arraylist

Ensuite tu peux utiliser les options de tri de l'objet datatable ou de la dataview associée, ce qui te permettra de trier ASC ou DESC sur la colonne que tu veux.

Ensuite tu écrit une méthode qui retransforme ta datatable en arraylist une fois triée.

pour résumer :

1/ private datatable GetDataTable ( ArrayList maListe) 
   {}

2/ private datatable  SortTable ( datatable maTable , String maColone, String monSens) 
   {}

3/ private ArrayList  GetArrayList  ( datatable maTable ) 
   {}

avantages : si modifie ta classe personne , tu n'a pas de code a réécrirer pour dire sur quel membre tu veux trier.


et hop

jeudi 7 avril 2005 à 16:36:10 | Re : Trier tableau + help

emmanuel9

ah ok merci, je vais essayer ca alors.
jeudi 7 avril 2005 à 16:46:19 | Re : Trier tableau + help

titeoe

Réponse acceptée !
sinon j'ai trouvé ca aussi :

[ Lien ]
jeudi 7 avril 2005 à 16:46:34 | Re : Trier tableau + help

coq

Administrateur CodeS-SourceS
Réponse acceptée !
En créant un sorter perso implémentant IComparer.
Petit exemple vite fait :

Sorter :
public enum PersonneSortMember
{
Nom,
Prenom,
Age
}

public class PersonneSorter : IComparer
{
public PersonneSorter ( PersonneSortMember sortBy )
{
m_sortBy = sortBy;
}

private PersonneSortMember m_sortBy;

#region Membres de IComparer

public int Compare(object x, object y)
{
Personne xPersonne = (Personne)x;
Personne yPersonne = (Personne)y;

int result = 0;

switch ( m_sortBy )
{
case PersonneSortMember.Nom:
result = xPersonne.nom.CompareTo(yPersonne.nom);
break;

case PersonneSortMember.Prenom:
result = xPersonne.prenom.CompareTo(yPersonne.prenom);
break;

case PersonneSortMember.Age:
result = xPersonne.age.CompareTo(yPersonne.age);
break;
}

return result;
}

#endregion
}


Utilisation :
liste.Sort(new PersonneSorter(PersonneSortMember.Nom));
liste.Sort(new PersonneSorter(PersonneSortMember.Prenom));
liste.Sort(new PersonneSorter(PersonneSortMember.Age));



Cocoricoooooooo !!!!
coq
MVP Visual C#
jeudi 7 avril 2005 à 16:53:19 | Re : Trier tableau + help

emmanuel9

merci, je vais essayer les deux solutions enfin je vais d'abord essayer de comprendre héhé
jeudi 7 avril 2005 à 18:24:28 | Re : Trier tableau + help

sebseb42

Réponse acceptée !
la solution de coq est de loin la meilleur, car elle est la plus approprier, titeoe, je te suggere de passer par un SQL Server 2005 avec la DB monter sur un RAID :P

tu peux creer un Sorter perso comme l'a montrer coq, et l'utiliser aussi avec la fonction Array.Sort() si tu as besoin de trier un tableau et non une liste :)



vendredi 8 avril 2005 à 10:10:11 | Re : Trier tableau + help

titeoe

je suis d'accord avec toi sebseb42, la solution de coq est vraiment bien ( et en plus c'est la meme que celle de mon 2e post).

Mais bon, j'ai le droit d'etre fatigué et pas aussi balaise que coq ;)))


1 2

Cette discussion est classée dans : help, string, tableau, classe, trier


Répondre à ce message

Sujets en rapport avec ce message

Tableau trier help [ par emmanuel9 ] Bonjour, Je chercher à trier un tableau de x élements dans utiliser de méthode comme sort. Quel méthodes de tries me conseilleriez vous et surtout com String (tableau) [ par JCpp ] Comment on realise un tableau de string en C# ?exemple :string [] a; // a[0]="toto"; a[1]="titi";Mercihttp:// Type, string et reflection [ par bigflo93 ] Salut à tous :)Je suis en pleine reflection en ce moment :) et je cherche à instancier une classe à partir d'une string.Enfin, plus précisement avoir Type global pour int[], string[], bool[] ..... [ par ricklekebekoi ] Hello,Mon problème va comme suit:Dans mon programme, jutilise différentes array de différents types (des bool[], des int[], des string[] ...)Je me sui chaine + help [ par emmanuel9 ] Bonjour, Le problème est le suivant J'ai une chaine, par exemple "      jean          pierre       "  et je voudrais à l'arr tableau de classe [ par lilington ] Salut j'ai un petit probleme avec un  tableau: public class bxt {   public string nom;   private int zet ... {}... } dans le main: {  {}...  bxt [] Help conversion string en double [ par JCpp ] comment on convertir une chaine "string" en "double" avec visual studio .net c# ?exemple :string toto = "123.45";double titi = toto.??????????http://p Masse Molaire help help [ par Arkarch ] Salut !Loin d'être un bon programmeur, je recherche comment prendre deux éléments d'un tableau et en faire un seul 'string' ! J'explique : On me re Conversion de char[] ( C++ non managé ) vers un string ( C# ) [ par LUDINSKI ] Tout d'abord je m'excuse, je ne savais pas qu'il y avait un site spécial C# !!Voilà, il faut que je convertisse un tableau de char provenant du C++ ( Conversion string[,] depuis System.Array [ par el_teedee ] Bonjour, tout est dans le titre, je récupère un System.Array qui, par exemple est un tableau de string [5,3] : [1,1] [1,2][1,3]... [5,1] [5,2] [5,3]


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 7,519 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales