목록으로 할 수있는 작업 :
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;
}
}