Как лучше всего это сделать?
var set2 = new HashSet<reference_type>();
Обход набора с помощью foreach, подобного этому.
foreach (var n in set)
set2.Add(n);
Или используйте что-то вроде объединения.
set2 = set.UnionWith(set); // all the elements