74 votes

Convertir un tableau en HashSet<T> en .NET

Comment convertir un tableau en un jeu de hachage ?

 string[]  BlockedList = BlockList.Split(new char[] { ';' },     
StringSplitOptions.RemoveEmptyEntries);

Je dois convertir cette liste en hashset .

21voto

Justin Niessner Points 144953

Je suppose que BlockList est une chaîne (d'où l'appel à Split) qui renvoie un tableau de chaînes.

Il suffit de passer le tableau (qui implémente IEnumerable) au constructeur du HashSet :

 var hashSet = new HashSet<string>(BlockedList);

14voto

Stas Boyarincev Points 1147

À partir de .Net Framework 4.7.1 et .Net Core 2.0, il existe une méthode ToHashSet intégrée

 using System.Linq;

var hashSet = BlockedList.ToHashSet();

13voto

Jake Pearson Points 9657

Voici une méthode d'extension qui générera un HashSet à partir de n'importe quel IEnumerable :

 public static HashSet<T> ToHashSet<T>(this IEnumerable<T> source)
{
    return new HashSet<T>(source);
}

Pour l'utiliser avec votre exemple ci-dessus :

 var hashSet = BlockedList.ToHashSet();

2voto

CountZero Points 789

Nouveau mot clé manqué sur l'exemple d'extension....

   public static HashSet<T> ToHashSet<T>(this IEnumerable<T> source)
    {
        return new HashSet<T>(source);
    }

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X