Com uma lista, você pode fazer:
list.AddRange(otherCollection);
Não há método de adição de intervalo em um HashSet . Qual é a melhor maneira de adicionar outra coleção a um HashSet?
Com uma lista, você pode fazer:
list.AddRange(otherCollection);
Não há método de adição de intervalo em um HashSet . Qual é a melhor maneira de adicionar outra coleção a um HashSet?
Respostas:
Pois HashSet<T>
, o nome é UnionWith
.
Isso é para indicar a maneira distinta de HashSet
trabalhar. Você não pode seguramente Add
criar um conjunto de elementos aleatórios, como Collections
alguns elementos, naturalmente podem evaporar.
Eu acho que UnionWith
leva esse nome depois de "mesclar com outro HashSet
", no entanto, também há uma sobrecarga IEnumerable<T>
.
Esta é uma maneira:
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
) foi criado com o termo definido matematicamente.UnionWith
foi o termo mais próximo. Exceto porExcept
, que claramente deve ser nomeado comoSubtract
, matematicamente falando.