Mit einer Liste kannst du folgendes tun:
list.AddRange(otherCollection);
Es gibt keine AddRange-Methode in einem HashSet
. Wie fügt man am besten eine andere ICollection
zu einem HashSet
hinzu?
Mit einer Liste kannst du folgendes tun:
list.AddRange(otherCollection);
Es gibt keine AddRange-Methode in einem HashSet
. Wie fügt man am besten eine andere ICollection
zu einem HashSet
hinzu?
Für HashSet
lautet der Name UnionWith
.
Dies soll auf die besondere Art und Weise hinweisen, wie HashSet
funktioniert. Sie können nicht sicher ein Set zufälliger Elemente hinzufügen wie bei Collections
, einige Elemente könnten natürlicherweise verdunsten.
Ich denke, dass UnionWith
seinen Namen nach dem "Vereinigen mit einem anderen HashSet
" hat, jedoch gibt es auch eine Überladung für IEnumerable
.
Sie können auch CONCAT mit LINQ verwenden. Dadurch wird eine Sammlung oder speziell ein HashSet
an eine andere angehängt.
var A = new HashSet() { 1, 2, 3 }; // Inhalt von HashSet 'A'
var B = new HashSet() { 4, 5 }; // Inhalt von HashSet 'B'
// 'B' an 'A' anhängen
A = A.Concat(B).ToHashSet(); // Alternativ kann auch: ToList(), ToArray(), ... verwendet werden
// 'A' enthält jetzt auch den Inhalt von 'B'
Console.WriteLine(A);
>>>> {1, 2, 3, 4, 5}
HINWEIS: Concat()
erstellt eine komplett neue Sammlung. Außerdem ist UnionWith()
schneller als Concat().
"... dies (Concat()
) setzt auch voraus, dass Sie tatsächlich Zugriff auf die Variable haben, die auf das Hash-Set verweist, und dürfen es ändern, was nicht immer der Fall ist." – @PeterDuniho
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.