Используйте конструктор:
HashSet<type> set2 = new HashSet<type>(set1);
Лично я хотел бы, чтобы LINQ to Objects имел метод расширения ToHashSet
, как это имеет место для List
и Dictionary
. Конечно, создать свой собственный легко:
public static HashSet<T> ToHashSet<T>(this IEnumerable<T> source)
{
if (source == null)
{
throw new ArgumentNullException("source");
}
return new HashSet<T>(source);
}
(С другой перегрузкой для пользовательского сравнения равенства.)
Это позволяет легко создавать наборы анонимного типа.