Со списком вы можете сделать:
list.AddRange(otherCollection);
В HashSet нет метода добавления диапазона . Каков наилучший способ добавить еще одну коллекцию в HashSet?
Со списком вы можете сделать:
list.AddRange(otherCollection);
В HashSet нет метода добавления диапазона . Каков наилучший способ добавить еще одну коллекцию в HashSet?
Ответы:
Ибо HashSet<T>
имя UnionWith
.
Это должно указать на отличный способ HashSet
работы. Вы не можете безопасно Add
набор случайных элементов к нему, как в Collections
, некоторые элементы могут естественно испаряться.
Я думаю, что это UnionWith
берет свое имя после «слияния с другим HashSet
», однако, есть и перегрузка IEnumerable<T>
.
Это один из способов:
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
(иISet
) был создан с математически заданным термином.UnionWith
был ближе термин. За исключением тогоExcept
, что явно должно быть названоSubtract
, математически говоря.