¿Existe un equivalente de AddRange para un HashSet en C#?
Con una lista puedes hacer:
list.AddRange(otherCollection);
No existe un método para agregar rango en un archivo HashSet
. ¿ Cuál es la mejor manera de agregar otro ICollection
a HashSet
?
Aceptado
Porque HashSet<T>
el nombre es UnionWith
.
Esto es para indicar la forma distinta en que HashSet
funciona. No se puede agregar de forma segura Add
un conjunto de elementos aleatorios como en Collections
, algunos elementos pueden evaporarse naturalmente.
Creo que UnionWith
toma su nombre de "fusionarse con otro HashSet
", sin embargo, también hay una sobrecarga IEnumerable<T>
.
Esta es una manera:
public static class Extensions
{
public static bool AddRange<T>(this HashSet<T> source, IEnumerable<T> items)
{
bool allAdded = true;
foreach (T item in items)
{
allAdded &= source.Add(item);
}
return allAdded;
}
}