Con un elenco puoi fare:
list.AddRange(otherCollection);
Non esiste un metodo di intervallo di aggiunta in un HashSet . Qual è il modo migliore per aggiungere un'altra raccolta a un HashSet?
Con un elenco puoi fare:
list.AddRange(otherCollection);
Non esiste un metodo di intervallo di aggiunta in un HashSet . Qual è il modo migliore per aggiungere un'altra raccolta a un HashSet?
Risposte:
Per HashSet<T>
, il nome è UnionWith
.
Questo per indicare il modo distinto in cui HashSet
funziona. Non puoi tranquillamente Add
un insieme di elementi casuali come in esso Collections
, alcuni elementi possono evaporare naturalmente.
Penso che UnionWith
prende il nome dopo "fusione con un altro HashSet
", tuttavia, c'è anche un sovraccarico IEnumerable<T>
.
Questo è un modo:
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
(eISet
) è stato creato con un termine impostato matematicamente.UnionWith
era il termine più vicino. TranneExcept
che, che chiaramente dovrebbe essere chiamato comeSubtract
, matematicamente parlando.