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> .