bir HashSet için bir AddRange eşdeğer mi. Bir HashSet'e yeni koleksiyon eklemenin en iyi yolu nedir?Yapabileceğiniz bir liste ile C#
cevap
HashSet için ad UnionWith.
Bu, HashSet'in çalıştığı farklı yolu belirtmektir. Koleksiyonlarda rastgele bir dizi öğe "Güvenli" ekle "yapamazsınız, bazı öğeler doğal olarak buharlaşabilir.
Ben, ancak, çok IEnumerable için bir aşırı yük :) var UnionWith "Başka HashSet birleşiyor" sonra adını alır düşünüyorum Bu bir yoludur
:
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;
}
}
@quetzalcoatl, iade bildirimini kaçırdı ... düzenledi. – RoadieRich
Düzenlemeyi daha yeni farkettim :) Just FYI: '': 'operatörünü kullanmak yerine, basit' eklendi & = @ this.Add (item) 'yeterli ve muhtemelen daha okunabilir olurdu. Ama bu elbette sadece kozmetik. – quetzalcoatl
@quetzalcoatl Bunu sormak üzereydim, sabah benim için çok erken. – RoadieRich
Imho, 'HashSet' (ve "ISet") matematiksel olarak belirlenmiş bir terim ile oluşturuldu. 'UnionWith' daha yakın bir dönemdi. Matematiksel olarak “Çıkar” olarak adlandırılan “Hariç” dışında. –