Dengan daftar yang dapat Anda lakukan:
list.AddRange(otherCollection);
Tidak ada metode rentang tambah di HashSet . Apa cara terbaik untuk menambahkan koleksi lain ke HashSet?
Dengan daftar yang dapat Anda lakukan:
list.AddRange(otherCollection);
Tidak ada metode rentang tambah di HashSet . Apa cara terbaik untuk menambahkan koleksi lain ke HashSet?
Jawaban:
Sebab HashSet<T>, namanya UnionWith.
Ini untuk menunjukkan cara HashSetkerja yang berbeda. Anda tidak dapat dengan aman Addsatu set elemen acak seperti di dalamnya Collections, beberapa elemen mungkin secara alami menguap.
Saya pikir itu UnionWithmengambil namanya setelah "bergabung dengan yang lain HashSet", namun, ada kelebihan IEnumerable<T>juga.
Ini satu cara:
public static class Extensions
{
public static bool AddRange<T>(this HashSet<T> source, IEnumerable<T> items)
{
bool allAdded = true;
foreach (T item in items)
{
allAdded &= source.Add(item);
}
return allAdded;
}
}
HashSet(danISet) dibuat dengan istilah yang ditetapkan secara matematis.UnionWithadalah istilah yang lebih dekat. KecualiExcept, yang jelas harus dinamaiSubtract, secara matematis.