2013-03-07 16 views

risposta

308

Per HashSet, il nome è UnionWith.

Questo per indicare il modo distinto con cui funziona HashSet. Non puoi "aggiungere" set di elementi casuali in modo sicuro come in Raccolte, alcuni elementi possono evaporare naturalmente.

penso che UnionWith prende il nome dopo "la fusione con un altro HashSet", però, c'è un sovraccarico per IEnumerable troppo :)

+5

IMHO, 'HashSet' (e 'ISet') è stato creato con un termine matematicamente impostato. 'UnionWith' era il termine più vicino. Tranne che per "Except", che chiaramente dovrebbe essere chiamato "Sottrazione", matematicamente parlando. –

2

Questo è un modo:

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 ha perso la dichiarazione di reso ... modificata. – RoadieRich

+0

Ho appena notato la modifica :) Solo FYI: invece di usare l'operatore '?:', Semplice 'aggiunto & = @ this.Add (item)' sarebbe sufficiente e probabilmente più leggibile. Ma ovviamente sono solo i cosmetici. – quetzalcoatl

+0

@quetzalcoatl Stavo per chiedermelo, è troppo presto per me. – RoadieRich

Problemi correlati