J'ai un arrayliste "Templiste" après un certain temps j'ai vu beaucoup de valeurs dupliquées sont ajoutées à arraylist, donc j'ai pensé à supprimer les doublons. Quand j'ai googlé j'ai trouvé quelques solutions mais la plupart d'entre eux sont source de confusion. Quelque part où il est dit trier l'arraliste et trouver et supprimer les doublons certains où dire d'utiliser distinct, quelque part dire d'utiliser hashlist. De toute façon, je ne veux pas remplacer Arraylist avec d'autres structures. Quelqu'un peut-il me fournir une logique pour éviter les doublons d'arraylist?Suppression des entrées en double de l'arraliste
Le code qui maintenant j'ai est
public class Templist : ArrayList
{
//some logic behind arraylist
} Templist items = new Templist();
if (!(obj is Testobject) && !(obj is Leafobject))
{
items.Add(obj);
}
if (items.Count > 0)
{
SSendObjectCollection(items);
}
static public void SendObjectCollection(Templist col)
{
try
{
col.Sort();
}
catch(System.Exception exception)
{
}
}
MISE À JOUR
je l'ai fait ce code
public static string[] RemoveDuplicates(string[] s)
{
HashSet<string> set = new HashSet<string>(s);
string[] result = new string[set.Count];
set.CopyTo(result);
return result;
}
Puis j'ai appelé en fonction exisitng SendObjectCollection() comme RemoveDuplicates(col);
mais il jette des erreurs, tout le monde peut me guider ce qui est g oing mal ici?
Quelques questions: Avez-vous travaillé sur * où * les doublons viennent? Vous nous avez donné aucun contexte. Pourquoi utilisez-vous 'ArrayList' en premier lieu? (Les collections génériques sont presque toujours préférables.) Pourquoi vous * dérivez * de 'ArrayList'? (Dériver votre propre collection de ceux qui existent déjà est presque toujours une mauvaise idée.) –
@Jon Skeet dupliquer devient dans la méthode SendObjectCollection, cet arralist est personnalisé arralist, je vais modifier la question – vettori
S'il vous plaît lire http://tinyurl.com/so -list quand vous le faites –