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 HashSettrabalhar. Você não pode seguramente Addcriar um conjunto de elementos aleatórios, como Collectionsalguns elementos, naturalmente podem evaporar.
Eu acho que UnionWithleva 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.UnionWithfoi o termo mais próximo. Exceto porExcept, que claramente deve ser nomeado comoSubtract, matematicamente falando.