
{filelink=18411}
using System;
using System.Collections;
namespace CollectionExemple
{
class PC : IComparable
{
public string marque;
public int prix;
public PC(string marque, int prix)
{
this.marque = marque;
this.prix = prix;
}
public override string ToString()
{
return "Marque:" + marque + ", Prix: " + prix+"€";
}
public int Compare(object lhs, object rhs)
{
PC lhsPC = (PC)lhs;
PC rhsPC = (PC)rhs;
if (lhsPC.prix < rhsPC.prix)
{
return -1;
}
else if (lhsPC.prix > rhsPC.prix)
{
return 1;
}
else
{
return 0;
}
}
public int CompareTo(object rhs)
{
return Compare(this, rhs);
}
}
public class ClassePrincipale
{
// Cette méthode affiche le contenu d'ArrayList passée en paramètre
public static void afficherLaListe(string nomListe, ArrayList monArrayList
)
{
for (int compteur = 0; compteur < monArrayList.Count; compteur++)
{
Console.WriteLine(nomListe + "[" + compteur + "] = " +
monArrayList[compteur]);
}
}
public static void Main()
{
// Création d'un objet ArrayList
ArrayList arrayListPC = new ArrayList();
// Ajouter 5 élément dans ArrayList
PC objToshiba = new PC("Toshiba Satellite", 450);
PC objHP = new PC("HP", 460);
PC objSony = new PC("Sony Vaio", 600);
PC objeBook = new PC("eBook", 800);
PC objeSamsung = new PC("Samsung", 320);
arrayListPC.Add(objToshiba);
arrayListPC.Add(objHP);
arrayListPC.Add(objSony);
arrayListPC.Add(objeBook);
arrayListPC.Add(objeSamsung);
afficherLaListe("Liste Marque PC", arrayListPC);
// Utilisation de la méthode contains
if (arrayListPC.Contains(objHP))
{
Console.WriteLine("Liste Marque PC Contient:" + objHP);
int index = arrayListPC.IndexOf(objHP);
Console.WriteLine("son Index " + index);
}
// Suppression d'un élément dans ArrayList avec la méthode 'remove'
Console.WriteLine("Suppression de l'objet: " + objeSamsung);
arrayListPC.Remove(objeSamsung);
afficherLaListe("La liste après supression", arrayListPC);
// Utilisation de la méthode 'Sort()' pour trier une ArrayList
Console.WriteLine("Tri avec la méthode Sort()");
arrayListPC.Sort();
afficherLaListe("Ma liste triée", arrayListPC);
// Utilisation de la méthode 'BinarySearch()' pour le recherches binaires
Console.WriteLine("Recherche binaire de eBook");
int indexEBook = arrayListPC.BinarySearch(objeBook);
Console.WriteLine("eBook trouvé à l'index: " + indexEBook);
// Méthode 'GetRange()' pour une plage de données
Console.WriteLine(" obténir 2 élément d'arrayList à partir d'une index");
ArrayList nouvellArrayList = arrayListPC.GetRange(1, 2);
afficherLaListe("NouvellArrayList", nouvellArrayList);
// Utilisation 'Enumerator' sur ArrayList
Console.WriteLine("Parcourir ArrayList avec Enumerator");
IEnumerator enumeratot = arrayListPC.GetEnumerator();
while (enumeratot.MoveNext())
{
Console.WriteLine("Elément: " + enumeratot.Current);
}
// Revenir à la position initiale de 'Enumerator'
Console.WriteLine("Position Initiale");
enumeratot.Reset();
Console.WriteLine("Avancer vers l'élément suivant");
enumeratot.MoveNext();
Console.WriteLine("Element suivant: " + enumeratot.Current);
// Utilisation de 'foreach' pour lister le contenu d''ArrayList'
Console.WriteLine("Les éléments de ma listet");
foreach (PC pc in arrayListPC)
{
System.Console.WriteLine("PC: " + pc);
}
}
}
}