Flache Kopie von einem hashset
Was ist der beste Weg, es zu tun?
var set2 = new HashSet<reference_type>();
Traverse das set mit einer foreach-wie diese.
foreach (var n in set)
set2.Add(n);
Oder so etwas wie union, wie diese.
set2 = set.UnionWith(set); //all the elements
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Konstruktor verwenden:
Persönlich Wünsche ich LINQ to Objects hatte ein
ToHashSet
Erweiterung Methode, da es fürList
undDictionary
. Es ist ganz einfach erstellen Sie Ihre eigenen natürlich:(Mit einem anderen überlast für eine benutzerdefinierte Gleichheit comparer.)
Dies macht es einfach zu erstellen Sätze von einen anonymen Typ.
Beste ist subjektiv, aber ich würde es tun, wie folgt:
Oder noch besser:
die sicherstellt, dass Sie mit der gleichen Gleichheit comparer wie das original HashSet. Zum Beispiel, wenn das original war eine groß-und Kleinschreibung
HashSet<string>
, Ihre neuen wird man auch groß-und Kleinschreibung.Dies ist wahrscheinlich die einfachste und beste:
Aus der MSDN docs: