За допомогою списку ви можете:
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
математично.