17
août
2005
Tester un « set of » en C#
août
2005
C# ne possède pas de type ensemble comme Delphi (set). C’est dommage car cela est souvent pratique.
Je vous propose une petite fonction toute simple qui fera le même office :
public bool IsInSet(object source,object[] theSet)
{
foreach (object o in theSet)
if (o.Equals(source)) return true;
return false;
}
{
foreach (object o in theSet)
if (o.Equals(source)) return true;
return false;
}
la fonction s’appelle comme le montre l’exemple ci-dessous :
if (IsInSet("toto",new object[] {1,2,3} ) )
Console.WriteLine("Dans le set");
else Console.WriteLine("Pas dans le set");
Console.WriteLine("Dans le set");
else Console.WriteLine("Pas dans le set");
Pratique non ?
Oui cela peut-etre utile mais en fait, un grand nombre de classe Collections possèdent la méthode contains. StringCollection à utiliser à la place de string[] par exemple. Mais bon, l’idée est très bonne quand même. bravo
Plusieurs implémentations sont possibles, bien entendu. Et ArrayList fait l’affaire aussi. D’un point de vue économique une array d’objets étant suffisante il n’y a toutefois pas de nécessité d’utiliser une classe liste, une array exploitant les capcités du langage, la classe liste faisant appel à une librairie de code (le framework).
Salut .
La classe ArrayList le fait très bien avec la fonction Contains.
Sinon c’est effectivement à mettre dans sa bibliotheque perso.