Avec une liste, vous pouvez faire:
list.AddRange(otherCollection);
Il n'y a pas de méthode d'ajout de plage dans un HashSet. Quel est le meilleur moyen d'ajouter une autre collection à un HashSet?
Pour HashSet<T>
, le nom est UnionWith
.
Ceci indique la manière distincte dont fonctionne HashSet
. Vous ne pouvez pas en toute sécurité Add
un ensemble d’éléments aléatoires comme dans Collections
, certains éléments peuvent naturellement s’évaporer.
Je pense que UnionWith
prend son nom après "fusion avec un autre HashSet
", cependant, il y a aussi une surcharge pour IEnumerable<T>
.
C'est une façon:
public static class Extensions
{
public static bool AddRange<T>(this HashSet<T> @this, IEnumerable<T> items)
{
bool allAdded = true;
foreach (T item in items)
{
allAdded &= @this.Add(item);
}
return allAdded;
}
}