Con una lista puedes hacer:
list.AddRange(otherCollection);
No hay un método de agregar rango en un HashSet . ¿Cuál es la mejor manera de agregar otra colección a un HashSet?
Con una lista puedes hacer:
list.AddRange(otherCollection);
No hay un método de agregar rango en un HashSet . ¿Cuál es la mejor manera de agregar otra colección a un HashSet?
Respuestas:
Pues HashSet<T>
el nombre es UnionWith
.
Esto es para indicar la forma distinta en que HashSet
funciona. No puede con seguridad Add
un conjunto de elementos aleatorios como en Collections
algunos, algunos elementos pueden evaporarse naturalmente.
Creo que UnionWith
toma su nombre después de "fusionarse con otro HashSet
", sin embargo, también hay una sobrecarga IEnumerable<T>
.
Esta es una forma:
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;
}
}
HashSet
(yISet
) fue creado con un término matemáticamente establecido.UnionWith
Era el término más cercano. Excepto porExcept
, que claramente debería llamarseSubtract
matemáticamente hablando.