2013-03-07 12 views

Antwort

308

Für HashSet lautet der Name UnionWith.

Dies ist ein Hinweis auf die unterschiedliche Funktionsweise des HashSet. Sie können keine zufälligen Elemente wie in Sammlungen "hinzufügen", einige Elemente können natürlich verdampfen.

Ich denke, dass UnionWith seinen Namen nach nimmt jedoch "mit einem anderen HashSet Verschmelzung", gibt es eine Überlastung für IEnumerable auch :)

+5

Imho, 'HashSet' (und "ISet" wurde mit mathematisch gesetztem Begriff erstellt. "UnionWith" war die nähere Amtszeit. Mit Ausnahme von "Ausgenommen", was mathematisch eindeutig als "Subtrahieren" bezeichnet werden sollte. –

2

Dies ist ein Weg:

public static class Extensions 
{ 
    public static bool AddRange<T>(this HashSet<T> @this, IEnumerable<T> items) 
    { 
     bool allAdded = true; 
     foreach (T item in items) 
     { 
      allAdded &= @this.Add(item); 
     } 
     return allAdded; 
    } 
} 
+0

@quetzalcoatl verpasste die Rückkehr Aussage ... bearbeitet. – RoadieRich

+0

Ich habe gerade die Bearbeitung bemerkt :) Nur zur Info: Anstatt '?:' Operator zu verwenden, wäre einfach 'hinzugefügt & = @ this.Add (item)' ausreichend und wahrscheinlich besser lesbar. Aber das ist natürlich nur Kosmetik. – quetzalcoatl

+0

@quetzalcoatl Ich wollte gerade danach fragen, es ist zu früh am Morgen für mich. – RoadieRich

Verwandte Themen