c# - net - hashset concepto
¿Hay un equivalente de AddRange para un HashSet en C# (2)
Con una lista puedes hacer:
list.AddRange(otherCollection);
No hay un método para agregar rango en un HashSet . ¿Cuál es la mejor manera de agregar otra colección a un HashSet?
Esta es una forma:
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;
}
}
Para HashSet<T>
, el nombre es UnionWith
.
Esto es para indicar la forma HashSet
funciona HashSet
. No puede agregarle de forma segura un conjunto de elementos aleatorios como en Collections
, 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 para IEnumerable<T>
.